systemd/Services
< Systemd
Template:Article summary start Template:Article summary heading Template:Article summary wiki Template:Article summary end
This page is useful to publish systemd service files that are missing in the appropriate package in the repositories. These files can be copied from other distributions or created by yourself.
Contents
- 1 BOINC Daemon
- 2 CouchDB
- 3 Courier-IMAP
- 4 ddclient
- 5 dropbear
- 6 Folding@home SMP
- 7 IPv6 (Hurricane Electric)
- 8 Logmein Hamachi
- 9 Noip
- 10 pcscd
- 11 rc.local
- 12 Remote filesystem mounts
- 13 screen
- 14 tpfand
- 15 truecrypt (mount encrypted fs)
- 16 truecrypt (unmount encrypted fs)
- 17 verynice
- 18 VideoLAN 2.0
- 19 Xvfb
- 20 ZNC
- 21 See also
BOINC Daemon
/etc/systemd/system/boinc.service
[Unit] Description=BOINC Daemon [Service] User=boinc Nice=19 ExecStart=/usr/bin/boinc_client --dir /var/lib/boinc --redirectio [Install] WantedBy=multi-user.target
CouchDB
/etc/systemd/system/couchdb.service
[Unit] Description=CouchDB Server [Service] User=couchdb Type=forking PermissionsStartOnly=true ExecStartPre=/bin/mkdir -p /var/run/couchdb ; /bin/chown -R couchdb /var/run/couchdb ExecStart=/usr/bin/couchdb -b -o /dev/null -e /dev/null ExecStop=/usr/bin/couchdb -d [Install] WantedBy=multi-user.target
Courier-IMAP
/etc/systemd/system/authdaemond.service
[Unit] Description=Courier Authentification Daemon [Service] Type=forking ExecStart=/usr/sbin/authdaemond start ExecStop=/usr/sbin/authdaemon stop PIDFile=/run/authdaemon/pid [Install] WantedBy=multi-user.target
/etc/systemd/system/courier-imapd.service
[Unit] Description=Courier IMAP Daemon Requires=authdaemond.service After=authdaemond.service [Service] Type=forking EnvironmentFile=/etc/courier-imap/imapd ExecStart=/usr/lib/courier-imap/imapd.rc start ExecStop=/usr/lib/courier-imap/imapd.rc stop PIDFile=/var/run/courier/imapd.pid [Install] WantedBy=multi-user.target
/etc/systemd/system/courier-imapd-ssl.service
[Unit] Description=Courier IMAP Daemon Requires=authdaemond.service After=authdaemond.service [Service] Type=forking EnvironmentFile=/etc/courier-imap/imapd ExecStart=/usr/lib/courier-imap/imapd-ssl.rc start ExecStop=/usr/lib/courier-imap/imapd-ssl.rc stop PIDFile=/var/run/courier/imapd-ssl.pid [Install] WantedBy=multi-user.target
/usr/lib/tmpfiles.d/authdaemond.conf
D /run/authdaemon 0755 courier courier
/usr/lib/tmpfiles.d/courier-imapd.conf
D /run/courier 0755 courier courier
Note: Taken from Gentoo and modified for Arch. You could replace the files in tmpfiles.d with appropriate ExecStartPre calls as well. Service files for pop3d and pop3d-ssl are still missing, but are probably very similar to the imapd files!
ddclient
/etc/systemd/system/ddclient.service
[Unit] Description=Update dynamic DNS entries After=network.target [Service] EnvironmentFile=/etc/conf.d/ddclient PIDFile=/var/run/ddclient.pid ExecStart=/usr/sbin/ddclient $EXTRA_ARGS [Install] WantedBy=multi-user.target
dropbear
/etc/systemd/system/dropbear.service
[Unit] Description=Dropbear SSH server [Service] Type=oneshot ExecStart=/usr/sbin/dropbear -p 22 -d /etc/dropbear/dropbear_dss_host_key -w -P /var/run/dropbear.pid RemainAfterExit=yes [Install] WantedBy=multi-user.target
Folding@home SMP
See the comment on the AUR package. The unit file is copied below for convenience.
/etc/systemd/system/foldingathome-smp.service
[Unit] Description=Folding@home distributed computing client After=network.target [Service] Type=simple WorkingDirectory=/opt/fah-smp ExecStart=/opt/fah-smp/fah6 -smp -verbosity 9 -forceasm [Install] WantedBy=multi-user.target
IPv6 (Hurricane Electric)
/etc/systemd/system/he-ipv6.service
[Unit] Description=he.net IPv6 tunnel After=network.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/sbin/ip tunnel add he-ipv6 mode sit remote 209.51.161.14 local <local IPv4> ttl 255 ExecStart=/sbin/ip link set he-ipv6 up mtu 1480 ExecStart=/sbin/ip addr add <local IPv6>/64 dev he-ipv6 ExecStart=/sbin/ip -6 route add ::/0 dev he-ipv6 ExecStart=/sbin/ip addr add <public IPv6>/64 dev he-ipv6 ExecStop=/sbin/ip -6 route del ::/0 dev he-ipv6 ExecStop=/sbin/ip link set he-ipv6 down ExecStop=/sbin/ip tunnel del he-ipv6 [Install] WantedBy=multi-user.target
Logmein Hamachi
/etc/systemd/system/hamachi.service
[Unit] Description=Hamachi Daemon After=network.target [Service] Type=forking ExecStart=/opt/logmein-hamachi/bin/hamachid [Install] WantedBy=multi-user.target
Noip
/etc/systemd/system/noip2.service
[Unit] Description=No-IP Dynamic DNS Update Client After=network.target [Service] Type=forking ExecStart=/usr/bin/noip2 [Install] WantedBy=multi-user.target
pcscd
/etc/systemd/system/pcscd.service
[Unit] Description=PC/SC Smart Card Daemon Requires=pcscd.socket [Service] ExecStart=/usr/sbin/pcscd --foreground --auto-exit ExecReload=/usr/sbin/pcscd --hotplug StandardOutput=syslog [Install] Also=pcscd.socket
/etc/systemd/system/pcscd.socket
[Unit] Description=PC/SC Smart Card Daemon Activation Socket [Socket] ListenStream=/var/run/pcscd/pcscd.comm [Install] WantedBy=sockets.target
Reference:
rc.local
/etc/systemd/system/rc-local.service
[Unit] Description=/etc/rc.local Compatibility [Service] Type=oneshot ExecStart=/etc/rc.local TimeoutSec=0 StandardInput=tty RemainAfterExit=yes [Install] WantedBy=multi-user.target
Tip: You can replace your rc.local with native systemd units in
/etc/systemd/system/
.Note: Also available in initscripts (see: Systemd#Arch_integration).
Note: StandardInput=tty prevents background processes from running:
https://bbs.archlinux.org/viewtopic.php?id=147790
Remote filesystem mounts
See: Systemd#Remote_filesystem_mounts
screen
Autostarts screen for the specified user. (e.g. `systemctl enable screen@florian.service`)
/etc/systemd/system/screen@.service
[Unit] Description=screen After=network.target [Service] Type=forking User=%i ExecStart=/usr/bin/screen -dmS autoscreen ExecStop=/usr/bin/screen -S autoscreen -X quit [Install] WantedBy=multi-user.target
tpfand
/etc/systemd/system/tpfand.service
[Unit] Description=ThinkPad Fan Control [Service] Type=forking PIDFile=/var/run/tpfand.pid ExecStart=/usr/sbin/tpfand [Install] WantedBy=multi-user.target
truecrypt (mount encrypted fs)
/etc/systemd/system/truecrypt-mount.service
[Unit] Description=Mount Truecrypt-encrypted filesystems ConditionFileIsExecutable=/usr/bin/truecrypt #Requires=truecrypt-unmount.service #Before=mpd.service [Service] Type=oneshot ExecStart=/usr/bin/truecrypt -t /dev/sdXY /MOUNTPOINT StandardInput=tty-force RemainAfterExit=yes [Install] WantedBy=multi-user.target #Also=truecrypt-unmount.service
Note: Gleaned from bpont on the forums. If you use mpd and have your music dir in ~, uncomment
Before=mpd.service
, which takes care that mpd is started after this script. If you also use truecrypt-unmount.service
(see next service) uncomment the Requires=truecrypt-unmount.service
and Also=truecrypt-unmount.service
so it gets installed and activated by systemd automatically when useng this script.truecrypt (unmount encrypted fs)
/etc/systemd/system/truecrypt-unmount.service
[Unit] Description=Truecrypt unmount on shutdown, poweroff, reboot, system halt Before=local-fs-pre.target ConditionPathExistsGlob=/media/truecrypt* DefaultDependencies=no [Service] Type=oneshot ExecStart=/usr/bin/truecrypt -d TimeoutSec=5 StandardInput=tty [Install] WantedBy=shutdown.target reboot.target halt.target poweroff.target
Note: I don't know if this works yet. It may be necessary to replace
TimeoutSec=5
with ExecStart=sleep 5
. Script gleaned from tladuke on the forums.verynice
/etc/systemd/system/verynice.service
[Unit] Description=A tool for dynamically adjusting the nice-level of processes [Service] Type=forking PIDFile=/var/run/verynice.pid ExecStart=/usr/sbin/verynice -d /var/run/verynice.pid ExecStop=/bin/kill -15 $MAINPID [Install] WantedBy=multi-user.target
VideoLAN 2.0
Change the User parameter.
/etc/systemd/system/vlc.service
[Unit] Description=VideoOnLAN Service After=network.target [Service] Type=forking User=nobody ExecStart=/usr/bin/cvlc --intf=lua --lua-intf=http --daemon --http-port 8090 Restart=on-abort [Install] WantedBy=multi-user.target
Xvfb
Change the User/Group parameters.
/etc/systemd/system/xinit.service
[Unit] Description=xinit with xvfb After=network.target [Service] User=bitlbee Group=bitlbee ExecStart=/usr/bin/xvfb-run bash %h/.xinitrc [Install] WantedBy=multi-user.target
ZNC
Assuming znc was set up to be run by znc user from /var/lib/znc as explained in the Znc wiki page.
/etc/systemd/system/znc.service
[Unit] Description=ZNC Daemon After=network.target [Service] ExecStart=/usr/bin/znc --datadir=/var/lib/znc/ --foreground User=znc [Install] WantedBy=multi-user.target