Debian 8.4: Prozessnummer weicht ab

17/05/2016 - 10:50 von Dirk | Report spam
Hallo,

ich hab da ein einfaches Script für das rsyncen eines Verzeichnisses,
komme aber mit der Prozessnummer nicht klar.

Zweck ist, festzustellen, ob eine àltere Instanz des Programms noch
làuft. Dann soll keine neue gestartet werden.
Hier ist es so, dass im Script die Prozessnummer immer mit $$ 17163
angegeben wird. Wenn dann der relevante Teil geprüft wird, steht da
1716x drin (also immer so 1-6 Prozessnummern zurück).
Das Script làuft auf nem SLES11, wie es soll. Ich möchte es aber nun auf
Debian 8.4. anpassen.

+ echo ProzNr: 17163
ProzNr: 17163
+ PROGNAME=/root/bin/nas-syncen
+ date +%w_%H%M
+ TAG=2_1134
+ LOGDIR=/var/log/nas-syncen
+ mkdir -p /var/log/nas-syncen
+ echo ProzNr: 17163
ProzNr: 17163
+ rm -f /var/log/nas-syncen/2_1134*
+ echo ProzNr: 17163
ProzNr: 17163

## ab hier ist es relevant:
+ ps+ ax
grep /root/bin/nas-syncen
+ grep -v 17163
+ grep -v grep
+ [ -s /tmp/EXHO17163 ]
+ sleep 0
+ echo (17163) - /root/bin/nas-syncen laeuft noch:
(17163) - /root/bin/nas-syncen laeuft noch:
+ cat /tmp/EXHO17163
17162 ? Ss 0:00 /bin/sh -c /root/bin/nas-syncen

Wenn das Script vom cron gestartet wird, kommt es aus dieser Routine nie
zum eigentlich Start des rsyncs. Wenn ich das Script von Hand starte, schon.

Gibt es dazu evtl. Infos (außer man ps). :-)

Danke, Dirk
 

Lesen sie die antworten

#1 Peter Ludikovsky
17/05/2016 - 11:00 | Warnen spam
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
From: Peter Ludikovsky
To:
Message-ID:
Subject: Re: Debian 8.4: Prozessnummer weicht ab
References:
In-Reply-To:


Hallo,

Wie rufst du das Script hà¤ndisch auf, und welche Shell steht in der
Shebang-Zeile? Denn /bin/sh == /bin/dash != /bin/bash (default User-Shell).

Ausserdem solltest du à¼berprà¼fen, ob du irgendwelche Sub-Shell aufmachst
per ()/$()/``, in denen dann $$ natà¼rlich auch abweichen wà¼rde.

Lg
/peter

Am 17.05.2016 um 12:05 schrieb Dirk:
Hallo,

ich hab da ein einfaches Script fà¼r das rsyncen eines Verzeichnisses,
komme aber mit der Prozessnummer nicht klar.

Zweck ist, festzustellen, ob eine à¤ltere Instanz des Programms noch
là¤uft. Dann soll keine neue gestartet werden.
Hier ist es so, dass im Script die Prozessnummer immer mit $$ 17163
angegeben wird. Wenn dann der relevante Teil geprà¼ft wird, steht da
1716x drin (also immer so 1-6 Prozessnummern zurà¼ck).
Das Script là¤uft auf nem SLES11, wie es soll. Ich möchte es aber nun auf
Debian 8.4. anpassen.

+ echo ProzNr: 17163
ProzNr: 17163
+ PROGNAME=/root/bin/nas-syncen
+ date +%w_%H%M
+ TAG=2_1134
+ LOGDIR=/var/log/nas-syncen
+ mkdir -p /var/log/nas-syncen
+ echo ProzNr: 17163
ProzNr: 17163
+ rm -f /var/log/nas-syncen/2_1134*
+ echo ProzNr: 17163
ProzNr: 17163

## ab hier ist es relevant:
+ ps+ ax
grep /root/bin/nas-syncen
+ grep -v 17163
+ grep -v grep
+ [ -s /tmp/EXHO17163 ]
+ sleep 0
+ echo (17163) - /root/bin/nas-syncen laeuft noch:
(17163) - /root/bin/nas-syncen laeuft noch:
+ cat /tmp/EXHO17163
17162 ? Ss 0:00 /bin/sh -c /root/bin/nas-syncen

Wenn das Script vom cron gestartet wird, kommt es aus dieser Routine nie
zum eigentlich Start des rsyncs. Wenn ich das Script von Hand starte,
schon.

Gibt es dazu evtl. Infos (auàŸer man ps). :-)

Danke, Dirk






Ähnliche fragen