1
0
mirror of https://github.com/tiyn/wiki.git synced 2025-10-10 01:41:23 +02:00
Files
wiki/wiki/linux/systemd.md

3.6 KiB

SystemD

SystemD is an init system for Linux systems. It is used for service configuration and startup.

Usage

Run Command on Boot

To run a command (in this case /bin/bash /root/run.sh) create the following file at /etc/systemd/system/ with a name ending on .service. In this case it is called unturned.service.

[Unit]
Description=Description of the service

[Install]
WantedBy=multi-user.target

[Service]
ExecStart=/bin/bash /root/run.sh
Type=simple

For Proxmox you can add the following line under the [Unit] section to make sure the service is started after Proxmox has finished initializing.

After=pve-guests.service

Such a service can be started by running:

sudo systemctl start unturned

Alternatively it can be enabled to start at every boot by running:

sudo systemctl enable unturned

Start/Stop/Enable/Disable a service and Retrieve its Logs

Services can be started by running systemctl start <service-name>. They respectively can be stopped by replacing the start keyword for stop. To start the service after boot it has to be enabled. This works accordingly with the keyword enable. The disable keyword stops the service from starting automatically.

Logs of the last start of the service can be found by running systemctl status <service-name>.

Retrieving the SystemD Logs

SystemD logs can easily be found using the journalctl command. One of the most notable usages of the command is for checking the logs of the previous boot. This can be achieved by running the following command.

journalctl -b-1

Change Suspend and Hibernate Behaviour

The behaviour of suspend and hibernation can be changed in the file /etc/systemd/sleep.conf. One of the most important variables is the one to set the hibernation delay time. This time will be used to determine the time that is taken from suspend to hibernation if suspend-to-hibernate is called. The following line will set this to 10 minutes.

HibernateDelaySec=10min

Handle Power Key and Lid Switching

The management of power keys and lid switches is handled in the file /etc/systemd/logind.conf. The following line will set the behaviour of the power key to hibernate. The default for this would be to shutdown the system.

HandlePowerKey=hibernate

The same can also be done to determine the action taken when the lid is closed. By default the closing of the lid will result in suspending the system. The following lines will change this to suspend-then-hibernate.

HandleLidSwitch=suspend-then-hibernate

For further behaviour of the suspend and hibernate actions check the corresponding section.

When wanting to work with a closed lid some of the settings in the config file have to be set to ignore. As machetie writes on Reddit the following settings need to be set.

HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore

Afterwards the logind service has to be restarted as described on a later section.

sudo systemctl restart systemd-logind

Troubleshooting

This section focusses on errors that correspond to the SystemD software.

Timed Out Waiting for Device /dev/tpmrm0

This error signals problems with the trusted platform module. This however usually can be fixed easily by masking the service and is done like the following command shows.

systemctl mark dev-tpmrm0.device