#author("2025-06-17T09:27:09+00:00","default:iseki","iseki") #author("2025-06-17T11:52:37+00:00","default:iseki","iseki") * systemd ** プロセスコントロール *** target [#za614929] - SysVinit の runlevel の代わり |runlevel | target | | 0 | poweroff | | 1 | rescue | | 2,3 | multi-user | | 4 | (未使用) | | 5 | graphical | | 6 | reboot | - 現在の target -- systemctl get-default **** target の変更 [#v3ecfecd] - systemctl set-default multi-user - reboot ** service file *** 配置 - ''/usr/lib/systemd/system/'' にサービスの起動用ファイルを置く -- 例:/usr/lib/systemd/system/apache.service - ''systemctl enable サービス名'' で ''/etc/systemd/system/multi-user.target.wants/サービス名.service'' から /usr/lib/systemd/system/ へ シンボリックリンクが張られる. -- 例:apache.service -> /usr/lib/systemd/system/apache.service *** [Unit] *** [Service] **** WorkingDirectory - 環境変数は使用できない. **** ExecStart **** ExecStop - ''ExecStop'' のコマンドの実行が終了すると,''KillSignal'' で定められたシグナル(default SIGTERM)がプロセスに送信される. -- これによりプロセスが終了処理を行えるようになる. -- シグナルの送信の仕方は ''KillMode''(default は control-group:子プロセスを含めて全てのプロセスに送信する) で設定する. -- [[screen]] コマンドは SIGTERMを受け取ると,即時に停止する. - プロセスが終了しない場合,''TimeoutStopSec'' で定められた時間(default は 90s)だけ待って,SIGKILL がプロセスに送信される. -- ''SendSIGKILL'' = no の場合は,SIGKILLは送信されない. *** [Install] *** Sample - [[for screen>./screen]] #br