systemdを使用して制御したい旧式のデーモンがあります。構成ファイルが変更された場合は、強制終了して再起動する必要があります。つまり、設定ファイルを編集した後systemctl reload MYSERVICE
、プロセスを終了して再起動する必要があります。
試行1:デフォルトを試します。これは、デーモンを開始する方法をsystemdに通知しますが、再ロードする方法は通知しません。
[Service]
ExecStart=/usr/bin/MYSERVICE
Type=simple
その結果、start
そしてrestart
仕事が、reload
このエラーを与えます:
# systemctl reload MYSERVICE
Failed to reload MYSERVICE.service: Job type reload is not applicable for unit MYSERVICE.service.
試み2:プロセスを強制終了する方法を教えてください。これによりプロセスは強制終了されますが、systemdはプロセスを再起動しません。
[Service]
ExecStart=/usr/bin/MYSERVICE
Type=simple
ExecReload=/bin/kill -HUP $MAINPID
...に続く...
# systemctl daemon-reload
# systemctl reload MYSERVICE
...プロセスを強制終了しますが、自動的に再起動されません。
試行3:ExecReloadを使用してプロセスも再起動します。これはいくつかの理由で失敗します:
ExecReload=/bin/kill -HUP $MAINPID ; /usr/bin/MYSERVICE
...私が得るエラーメッセージ...:
# systemctl daemon-reload
# systemctl reload MYSERVICE
Job for MYSERVICE.service failed because the control process exited with error code. See "systemctl status MYSERVICE.service" and "journalctl -xe" for details.
ReloadType = kill_and_restartか何かがあると思いますが、そのような運はありません。
リロード時にデーモンを強制終了して再起動するようにsystemdに指示する方法は?