activate.sh
ここでsystemdを初めて使用しました。デフォルトでは、toggle.sh
および3つの異なるスクリプトがありますdeactivate.sh
。以下を実行するためにシステムサービスとタイマーを使用したいと思います。
- サービスが初めて起動したら、次のコマンドを実行します。
activate.sh
一度 - タイマーを使って次回まで実行したいと思います
toggle.sh
。 - サービスが停止しました。この場合に実行されます。
deactivate.sh
ExecStart
私は他の、、、、ExecStartPre
などExecStop
を試しましたが、RemainAfterExit
成功しませんでした。誰もが正しい方向に私を指すことができますか?
答え1
次のように3つの新しいユニットファイルを作成する必要があります(テストされていません)。
mything.service
:
[Unit]
Description=My custom thingy
[Service]
Type=service
ExecStart=/path/to/activate.sh
ExecStop=/path/to/deactivate.sh
[Install]
WantedBy=multi-user.target
Wants=togglemything.timer
togglemything.timer
:
[Unit]
Description=My custom timer thingy
[Timer]
OnCalendar=hourly
togglemything.service
:
[Unit]
Description=Toggle my custom thing
[Service]
Type=oneshot
ExecStart=/path/to/toggle.sh
最後の2つは、そのポイントの前に同じ名前を持つ必要があります。それ以外の場合、タイマーは何もしません。
あなたがしなければならsystemctl start mything
ないことは、仕事を動作させることだけです。