web-dev-qa-db-ja.com

18.04.4シャットダウン時にファイルを削除する

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ファイルが削除されない理由は何ですか?どうもありがとう

5

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ディレクトリはどのようにクリーンアップされますか?

11
Rinzwind