How to enable and check linger for a systemd user

“The systemd login manager will terminate any user services when their login session ends unless you enable user lingering with the enable-linger option. Use loginctl with the enable-linger option to configure a user to start during the boot process and prevent the systemd service from terminating when the user session ends.” [1] To enable linger for a user, e.g. kenno, we can run the following command: # loginctl enable-linger kenno I usually ran the above command, and that was it. However, today I need to check whether the user kenno had linger enabled already. I also want to document this for my own future reference. ...

December 3, 2024 · 2 min · 293 words · kenno

Replacing cron with systemd timer

Well, I don’t currently really have a good reason to replace a working cron job with systemd-timer beside practicing it. The following is the existing cron task for www-data user. I want to convert this cron to a systemd-timer: $ sudo crontab -l -u www-data # m h dom mon dow command */5 * * * * php -f /var/www/nextcloud/cron.php The above output indicates that the command php -f /var/www/nextcloud/cron.php is run at every 5th minute, of course by www-data user. ...

September 3, 2024 · 3 min · 428 words · kenno

Systemctl cat is cool

Sometimes we want to see the content of a Systemd unit file. One obvious way to do it is to just cat/vim the content of the unit file directly. For example, to display the content of systemd-tmpfiles-clean.timer, we can perform the following step: ➜ systemctl status systemd-tmpfiles-clean.timer | grep Loaded Loaded: loaded (/usr/lib/systemd/system/systemd-tmpfiles-clean.timer; static) ➜ cat /usr/lib/systemd/system/systemd-tmpfiles-clean.timer; # SPDX-License-Identifier: LGPL-2.1-or-later # # This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. [Unit] Description=Daily Cleanup of Temporary Directories Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8) ConditionPathExists=!/etc/initrd-release [Timer] OnBootSec=15min OnUnitActiveSec=1d But, can we do better than manually looking up the unit file and read it? Sure, can! ...

July 20, 2024 · 2 min · 306 words · kenno

Mounting NFS share with Systemd Automount

On my main workstation running Fedora 36, I use both autofs and Systemd automount to mount NFS on demand. Gradually, I’m leaning toward just to use Systemd automount. Here is just a brain dump with an example of mounting an NFS share with Systemd autmount. Though, I had done this before, I found this blog post, available at [1], provides details on how to do this. Assumption The NFS server and share: banan.example.com:/srv/music The preferred local mount point: /srv/banan/music Create required Systemd unit files We will need 2 unit files: the mount unit and the automount unit. ...

June 13, 2022 · 2 min · 359 words · kenno

Clean Up Systemd Journal Logs

On my Fedora 33 system, the systemd journal is persistently logged. Over time, the size of the log accumulate quite a lot. # du -shx journal/ 4.2G journal/ I already cleaned up the log twice in the past, but I already forgot how to do it. To fix my short-term memory, I’m going to document how I do this by following this blog post Clear systemd journal. The command for cleaning up old logs is journalctl with the option --vaccume-time=OLDER_THAN_TIME. To read more about this, we can check the journactl manual page. (man journalctl and search for vacuume key word.) ...

March 26, 2021 · 1 min · 166 words · kenno