systemd

出自Gea-Suan Lin's Wiki
跳至導覽 跳至搜尋

systemd是一個系統套件。

設定

system模式下不需要額外設定就可以用,建議將自製的service檔案裝到/etc/systemd/system下;user模式下需要針對特定使用者啟動user自己的systemd:

sudo loginctl enable-linger foo

另外在~/.profile內可能會需要指定XDG_RUNTIME_DIR

[ -z ${XDG_RUNTIME_DIR} ] && export XDG_RUNTIME_DIR=/run/user/$(id -u)

範例

這是一個很簡單的範例,放在/etc/systemd/system/下:

#
[Unit]
Description=Description
After=remote-fs.target

[Service]
#Environment="HTTP_PROXY=http://127.0.0.1:3128/"
#Environment="HTTPS_PROXY=http://127.0.0.1:3128/"
ExecStart=/usr/bin/spawn-fcgi
#ExecStop=...
#KillSignal=SIGQUIT # Default is SIGTERM
Restart=on-failure
RestartSec=60
Type=simple
#WorkingDirectory=

[Install]
WantedBy=multi-user.target

這是user模式下的(因為user模式下沒有multi-user.target,也不需要remote-fs.target),放在~/.config/systemd/user/下:

#
[Unit]
Description=Description

[Service]
#Environment="HTTP_PROXY=http://127.0.0.1:3128/"
#Environment="HTTPS_PROXY=http://127.0.0.1:3128/"
ExecStart=/usr/bin/spawn-fcgi
#ExecStop=...
#KillSignal=SIGQUIT # Default is SIGTERM
Restart=on-failure
RestartSec=60
Type=simple
#WorkingDirectory=

[Install]
WantedBy=default.target

對於Type的選擇[1],常用的有simple(繼續執行)與forking(類似daemon mode)。

參考文獻

  1. systemd.service. [2023-10-16] (English). 

外部連結