vim /home/mytest.sh
rm -f /home/mytest/*
削除操作を実行するサービスを作成したいと思います。
私の期待:
sudo systemctl stop mytest
/home/mytestのファイルを削除し、何もできません
sudo systemctl start mytest
。
マイサービスファイルを編集します。
sudo vim /etc/systemd/system/mytest.service
[Unit]
Description=delete file
[Service]
Type=oneshot
ExecStart=/bin/true
ExecStop=/bin/bash /home/mytest.sh
[Install]
WantedBy=multi-user.target
有効にしてください。
sudo systemctl enable mytest
これでmytestサービスに奇妙な動作があることがわかりました。
sudo systemctl start mytest
/home/mytestにあるファイルを削除し、
sudo systemctl stop mytest
何もできません。
なぜ?詳しく説明してください。
ベストアンサー1
これについて詳しく説明します。システムサービス文書しかし、何が起こっているのかを理解するには、ほとんどすべての内容を読む必要があります。この例の中で最も関連性の高い部分は実施例3である。宣言した 1 回限りのサービスは決してアクティブ化されないため、開始ジョブが完了すると停止ジョブが実行されることを読者は理解できます。
目標を達成するには、まだアクティブなワンタイムサービスが必要です。
[Unit]
Description=delete file
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStop=/bin/bash /home/mytest.sh
[Install]
WantedBy=multi-user.target