「systemctl起動/停止サービス」を使用せずにbash起動/停止スクリプトを直接使用するのを防ぎたいと思います。
これをスクリプトに挿入するbash方法はありますか?
答え1
SystemDから呼び出されたかどうかをスクリプトで確認できます。たとえば、そうでない場合は、エラーメッセージで中断したり、systemctl
。
親を決定する方法には、次のようないくつかの方法があります。
非常に簡単ですが、100%確かではありません。 PPIDが1であることを確認してください。
grep -q '^PPid: *1$' /proc/$$/status
systemctl status $$ >/dev/null 2>&1
(SystemDプロセスの終了コードは0です。)SystemDユニットファイルに固有の環境変数を設定して確認してください。
if [ 'yes' != "$STARTED_BY_SYSTEMD" ]; then ...