Ubuntu 18.04.4を再起動またはシャットダウンした場合、ロックファイルを削除したいのですが。
「usr/local/sbin/delete_lock.sh」を作成しました
#!/bin/bash
lock="/home/sebastien/rsync.lock"
if [ -f "$lock" ];
rm $lock;
fi
そして、別の "/etc/systemd/system/run_on_shutdown.service":
[Unit]
Description=Delete lock file at shutdown - /etc/systemd/system/run_on_shutdown.service
DefaultDependencies=no
Before=shutdown.target halt.target
# If your script requires any mounted directories, add them below:
RequiresMountsFor=/home
[Service]
Type=oneshot
ExecStart=/usr/local/sbin/delete_lock.sh
[Install]
WantedBy=halt.target shutdown.target
その後、私は起動します
Sudo systemctl enable run_on_shutdown.service
そして再起動
Rsync.lockファイルが削除されない理由は何ですか?どうもありがとう
Bashのif
構文の base は、次のとおりです。
if [expression];
then
code if 'expression' is true.
fi
そのため、then
が本当にありません。
#!/bin/bash
lock="/home/sebastien/rsync.lock"
if [ -f "$lock" ];
then
rm $lock;
fi
私は何かを提案するかもしれません:
これは複雑すぎます。
ロックファイルを/tmp/
に配置します。そのディレクトリは、再起動のたびに消去され、追加の作業を必要とせずにロックファイルを配置するための理想的なディレクトリです。例を見てください / tmpディレクトリはどのようにクリーンアップされますか?
このメソッドは、/etc/tmpfiles.d
のコンテンツからの拡張もサポートしています。参照 / tmpディレクトリはどのようにクリーンアップされますか?