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.
-- 
sigfault

_______________________________________________
Lug-dd maillist  -  [email protected]
https://ssl.schlittermann.de/mailman/listinfo/lug-dd

Antwort per Email an