私はsystemctlを使わずにbashスクリプトの起動/停止を無効にする方法を探しています。

私はsystemctlを使わずにbashスクリプトの起動/停止を無効にする方法を探しています。

「systemctl起動/停止サービス」を使用せずにbash起動/停止スクリプトを直接使用するのを防ぎたいと思います。

これをスクリプトに挿入するbash方法はありますか?

答え1

SystemDから呼び出されたかどうかをスクリプトで確認できます。たとえば、そうでない場合は、エラーメッセージで中断したり、systemctl

親を決定する方法には、次のようないくつかの方法があります。

  1. 非常に簡単ですが、100%確かではありません。 PPIDが1であることを確認してください。

    grep -q '^PPid: *1$' /proc/$$/status
    
  2. systemctl status $$ >/dev/null 2>&1(SystemDプロセスの終了コードは0です。)
  3. SystemDユニットファイルに固有の環境変数を設定して確認してください。

    if [ 'yes' != "$STARTED_BY_SYSTEMD" ]; then ...
    

関連情報