以下を使用してsystemd
サービスを構成するにはどうすればよいですか?いいえ最近終了したときに実行していましたが、起動時に開始されますか?私もできることを知っています障害を負うサービスですが、スタートその後、サービスが再起動され、引き続き実行されます。私はこれが欲しい:
- 今サービスを始めましょう。
- 再起動。
- サービスはいいえ活動/実行。
オンラインで回答を検索しましたが、人々がサービスの開始/停止とアクティブ化/無効化について尋ねて答えるノイズが多すぎます。私が知っている限り、起動時にサービスを明示的に無効にしたいようです。私は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 start
foo
一部を使用したい場合があります。SQLiteデータベースまたはJSON/var/tmp/dont_start_foo_service
何らかの方法でファイルを保存するのではなく、始めないでくださいバナー。
また考慮してくださいスケジュールされたタスク(5)@reboot
時間制限のある課題at
またはbatch
課題(参照これ)。