Das Skript wird nicht ausgeführt, wenn es als Start-Daemon ausgeführt wird. Es funktioniert gut in der Befehlszeile

369
wimdetr

Ich habe ein Python-Paket installiert, das die Änderungen der Datei bei Änderung ( https://github.com/joh/when-changed ) verfolgt. Nun ist der Befehl, den ich ausführen möchte:

when-changed /var/www/html/php/logfile.csv /var/www/html/php/processpayment.sh 

Wenn ich die Datei logfile.csv ändere, wird der Code in processpayment.sh ausgeführt. Wenn ich diesen Befehl jedoch in meine /etc/rc.local -Datei setze und das System neu starte, wird das Skript nicht ausgeführt, wenn ich die Datei ändere! Ich habe 3 Annahmen:

  1. Das Werkzeug zum Zeitpunkt des Wechsels ist Mist, es funktioniert nicht als Dämon.
  2. /etc/rc.local ist nicht der Ort, an dem dieser Daemon abgelegt werden kann (ich habe versucht, ihn in /etc/init/whenchanged.conf zu setzen, ohne Erfolg)
  3. der daemon muss mit pts / o verbunden sein und nicht in?

Als Referenz funktioniert der untere Prozess:

root 1331 0.5 0.4 275480 17376 ? Sl 16:14 0:04 /usr/bin/python /usr/local/bin/when-changed /var/www/html/php/logfile.csv /var/www/html/php/processpayment.sh root 3547 7.0 0.4 267024 16868 pts/1 Sl 16:27 0:00 /usr/bin/python /usr/local/bin/when-changed /var/www/html/php/logfile.csv /var/www/html/php/processpayment.sh 

Das Skript:

#!/bin/bash # called when logfile.csv changes # scrapes logfile.csv and runs the mintscript IN=$(cat logfile.csv | tail -n1 | cut -d';' -f4,6 | xargs) arrIN=($) amount=$ address=$ node "soupcoinmintscript.js" $address $amount | tee "log" exit 0; 

Die Startkonfiguration:

/etc/init# cat whenchanged.conf  start on startup task when-changed /var/www/html/php/logfile.csv  /var/www/html/php/processpayment.sh 
0
Welche spezielle Distribution verwendest du? Einige Distributionen haben `init.d 'zugunsten von' systemd 'abgelehnt. Es ist auch nicht so schön zu sagen, dass "wann geändert" Mist ist. Der Entwickler hat es mit einer Reihe von Anforderungen gemacht, und er ist bereit, es mit Ihnen zu teilen (absolut kostenlos). Wenn Sie der Meinung sind, dass dies nicht Ihren Anforderungen entspricht, ändern Sie den Code und senden Sie ihm eine Pull-Anfrage. Wenn Sie das nicht möchten, schreiben Sie Ihren eigenen Code. mtak vor 6 Jahren 1
@mtak du hast absolut recht, ich war nur ein bisschen frustriert; -). Ich glaube es ist Ubuntu, aber ich werde es bald genauer berichten. wimdetr vor 6 Jahren 0

0 Antworten auf die Frage