krebs.permown: use named pipe
This commit fixes following issues: 1. reexecution causes stray inotifywait processes 2. errors in the while part renderes the service defunct
This commit is contained in:
parent
1bbd53c459
commit
c082c8d62b
@ -65,17 +65,30 @@ with import <stockholm/lib>;
|
||||
find "$ROOT_PATH" -type d -exec chmod "$DIR_MODE" {} +
|
||||
find "$ROOT_PATH" -type f -exec chmod "$FILE_MODE" {} +
|
||||
|
||||
inotifywait -mrq -e CREATE --format %w%f "$ROOT_PATH" |
|
||||
paths=/tmp/paths
|
||||
rm -f "$paths"
|
||||
mkfifo "$paths"
|
||||
|
||||
inotifywait -mrq -e CREATE --format %w%f "$ROOT_PATH" > "$paths" &
|
||||
inotifywaitpid=$!
|
||||
|
||||
trap cleanup EXIT
|
||||
cleanup() {
|
||||
kill "$inotifywaitpid"
|
||||
}
|
||||
|
||||
while read -r path; do
|
||||
if test -d "$path"; then
|
||||
cleanup
|
||||
exec "$0" "$@"
|
||||
fi
|
||||
chown -h "$OWNER_GROUP" "$path"
|
||||
if test -f "$path"; then
|
||||
chmod "$FILE_MODE" "$path"
|
||||
fi
|
||||
done
|
||||
done < "$paths"
|
||||
'';
|
||||
PrivateTemp = true;
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
UMask = plan.umask;
|
||||
|
Loading…
Reference in New Issue
Block a user