サービスがシャットダウン時に実行されていても、起動時にサービスが起動しないようにしてください。

サービスがシャットダウン時に実行されていても、起動時にサービスが起動しないようにしてください。

以下を使用してsystemdサービスを構成するにはどうすればよいですか?いいえ最近終了したときに実行していましたが、起動時に開始されますか?私もできることを知っています障害を負うサービスですが、スタートその後、サービスが再起動され、引き続き実行されます。私はこれが欲しい:

  1. 今サービスを始めましょう。
  2. 再起動。
  3. サービスはいいえ活動/実行。

オンラインで回答を検索しましたが、人々がサービスの開始/停止とアクティブ化/無効化について尋ねて答えるノイズが多すぎます。私が知っている限り、起動時にサービスを明示的に無効にしたいようです。私はLinuxの上級初心者です。起動順序の適切な場所で発生させるには、このコマンドをどこに配置する必要がありますか?

それともこれを行う他の合理的で信頼できる方法はありますか?

アップデート:ついにサービスとしてインストールしてはいけないと決めました。振り返ってみると、これは明らかなようです。

答え1

サービスfooスターター(ここであなた必要宣伝する)は、与えられたファイルが存在するかどうかをテストすることです。たとえば、/var/tmp/dont_start_foo_serviceファイルが存在する場合は、exitすぐに何もしないでください。

Cコードでは、次を使用します。訪問(2)ファイルが存在するかどうかをテストします。

シェルスクリプトでは、次を使用します。テスト(1)この目的のために、例えば[ -f /var/tmp/dont_start_foo_service ];

また、見ることができますスーペリア(7)ファイル名規則について/etc/nologin文書化されています。ログインしていない(5)従来技術そのまま。

(以前終了または再起動前/var/tmp/dont_start_foo_serviceタッチ(1)(または作成(2)Cコードから)。

強制的に明示的に削除します(例:部屋(1)または削除(3)...)/var/tmp/dont_start_foo_service 実際に始める前に。systemctl startfoo

一部を使用したい場合があります。SQLiteデータベースまたはJSON/var/tmp/dont_start_foo_service何らかの方法でファイルを保存するのではなく、始めないでくださいバナー。

また考慮してくださいスケジュールされたタスク(5)@reboot時間制限のある課題atまたはbatch課題(参照これ)。

関連情報