debian systemdによるサービスの管理
debianをbusterにアップグレードしたのを機会にないがしろにしてきたがsystemctlの基本的なコマンドを整理。
いままでは/etc/init.dの下の起動スクリプトを使えばなんとでもなると思っていたけど、debianではjessieになった際にサービス管理はsystemdに移行している。systemdを操作するコマンドがsystemctlとのこと。
リンク: debian sysmted
基本的なコマンド
サービスの一覧を表示
# systemctl list-units --type service
サービスの状態を確認
# systemctl status apache2
OS起動時のサービスの有効化と無効化
# systemctl enable apache2
# systemctl disable apache2
サービスの開始
# systemctl start apache2
systemctlへのサービスの登録設定
/lib/systemd/system/の下にXXXXXXX.serviceの名前で設定ファイルを保存
# cat /lib/systemd/system/apache2.service
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
Documentation=https://httpd.apache.org/docs/2.4/
[Service]
Type=forking
Environment=APACHE_STARTED_BY_SYSTEMD=true
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl graceful
PrivateTmp=true
Restart=on-abort
[Install]
WantedBy=multi-user.target
設定ファイルを新規追加、編集した後にはsystemctlに認識させる必要がある
# sytemctl daemon-reload
所感
こうしてみると従来の/etc/init.dの構成に慣れてきた身としては面倒なことが増えたように思えてしまうが、ここに至る経緯やメリットもあるらしく以下のサイトが参考になった
とりあえずはOS的な都合でsystemdじゃなきゃ困ると言ったところか(超異訳