On 29.03.2015 13:17, Daniel Leidert wrote:
Am Freitag, den 05.12.2014, 20:03 +0100 schrieb Andre Klärner:
Moin,
Ich habe genau das folgende Script im Einsatz:
/etc/pm/sleep.d/01_prevent_on_rsync: #!/bin/bash if ps -ef | grep -q "[rs]ync --server" then exit 1 else exit 0 fi
Nach langem komme ich nun dazu, das mal zu probieren. Dabei bin ich darauf gekommen, dass der Ausdruck immer wahr ist und das Skript daher immer den Exit-Code 1 produziert und Suspend quasi immer ausgeschaltet ist. Das Kommando:
ps -ef | grep -q "[rs]ync --server"
ist immer wahr:
# ps -ef | grep "rdiff-backup --server" root 29456 29455 0 13:02 ? 00:00:00 /usr/bin/sudo /usr/bin/rdiff-backup --server --restrict-read-only / root 29457 29456 1 13:02 ? 00:00:08 /usr/bin/python /usr/bin/rdiff-backup --server --restrict-read-only / root 31262 24648 0 13:14 pts/2 00:00:00 grep rdiff-backup --server # ps -ef | grep "rdiff-backup --server2" root 31264 24648 0 13:14 pts/2 00:00:00 grep rdiff-backup --server2
da es auf sich selbst zutrifft.
Die Idee ist aber sicher die richtige. Ich habe den Ausdruck etwas verändert und teste jetzt.
Sicher einen Race-Condition. Es kann sein, daß das ps schon terminiert hat, wenn grep -q zuschlägt, muß aber nicht. Ich würde einfach schreiben:
ps -ef | grep -v ps | grep -q "[rs]ync --server"
H.