60秒ごとにディレクトリ内のすべてのファイルを削除するサービスを提供しようとしています。数分間ステータスを確認すると、サービスが再起動され、1分ごとにアクティブになっていることがわかります。
Active: activating (auto-restart) since Sun 2020-09-20 10:46:06 UTC; 3s ago
Process: 479 ExecStart=/bin/rm -rf /data/* (code=exited, status=0/SUCCESS)
これが私の現在のサービスです
[Unit]
Description=Cleans data directory
[Service]
User=root
Restart=always
RestartSec=60
ExecStart=rm -rf /data/*
[Install]
WantedBy=multi-user.target
Type = simpleを試してみましたが、再起動も削除してサービスと同じ名前のタイマーを使用しましたが、/ dataのファイルは削除されません。サービスにはルートレベルの権限があるため、権限が必要ですが、数分後に/ dataにファイルがまだ残っている理由はわかりません。
また、コマンドを手動で実行すると、rm -rf /data/*
すべてのファイルが削除されます。
答え1
シェルを介してコマンドを実行します。ExecStart=/bin/sh -c 'exec rm -rf /data/*'