"ps" zeigt laufenden Prozess nicht an.

Status
Für weitere Antworten geschlossen.

Herbert_Testmann

Benutzer
Mitglied seit
27. Jul 2009
Beiträge
1.114
Punkte für Reaktionen
1
Punkte
64
Hallo

nach dem Wechsel von DSM 4 auf 5 habe ich ein Problem mit der Anzeige und damit auch mit dem Beenden eines Prozesses.
Im Detail...

Ich lasse ein Java Programm laufen. Das Start Script dazu lautet

Rich (BBCode):
    #!/bin/sh

    start() {
       cd /volume1/ccu-historian
       nohup java -jar ccu-historian.jar 2>/dev/null &
       return 0
    }

    stop() {
       kill `ps |grep ccu |grep -v grep | cut -c 1-5`
       return 0
    }

    case "$1" in
       start)
          start
       ;;
       stop)
          stop
       ;;
       restart)
          stop
          start
       ;;
       *)
       exit 1
    esac

und hat mit DSM 4 auch funktioniert.
Der START geht nach wie vor.
Das STOP / RESTART funktioniert nicht, da der Kill Befehl nicht funktioniert. Grund dafür scheint zu sein, dass "ps" den Prozess nicht auflistet.
Dadurch ist es mir auch nicht möglich das Programm auf der Kommandozeile manuell zu beenden. Einziger Weg ... Neustart der DS :(

Hat jemand eine Idee, wie ich den Prozess anzeigen kann , um danach ein Kill auszuführen ?
Als einzige Option für "ps" wird mir -w angeboten. Das scheint gegenüber dem Linux üblichen ps stark eingeschränkt zu sien :(

schöne RestFeiertage
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
den ps auch manuell auf der Konsole gemacht? Gleiches Ergebnis?
 
Mitglied seit
10. Jan 2014
Beiträge
393
Punkte für Reaktionen
0
Punkte
0
ps auf der Kommandozeile wäre auch mein erster Rat.

Du solltest auch mal das Tracing aktivieren.
Bevor du das Script aufrufst, machst du in der Shell "set -x"
Danach werden die einzelnen Kommandos protokolliert.
 

Herbert_Testmann

Benutzer
Mitglied seit
27. Jul 2009
Beiträge
1.114
Punkte für Reaktionen
1
Punkte
64
Hallo

vermutlich habe ich mich etwas zu ungenau ausgedrückt. Das Script wieder zum laufen zu bekommen ist der zweite Schritt.

Zunächst bin ich mal auf der Konsole unterwegs und da zeigt mir ps den laufenden java Prozess nicht an.
Das ist dann die Ursache für alle folgenden Probleme.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
kannst du sicher sein, dass er wirklich läuft? Ggf eine Fehlermeldung wenn du 2>/dev/null weglässt?
 
Mitglied seit
10. Jan 2014
Beiträge
393
Punkte für Reaktionen
0
Punkte
0
Meine Erfahrung mit DS und nohup ist, dass es nicht funktioniert.
Vielleicht mache ich aber auch was falsch.....
 

Herbert_Testmann

Benutzer
Mitglied seit
27. Jul 2009
Beiträge
1.114
Punkte für Reaktionen
1
Punkte
64
hallo

der Prozess läuft. Das Programm stellt einen Web Server bereit, auf den ich zugreifen kann.
Starte ich die DS neu, ist der Web Server nicht erreichbar.
Starte ich das Script mit START ist der Server wiedr da.

Starte ich von der Konsole ohne nohub, läuft das Programm, die Konsole ist aber blockiert. Beende ich dann das Terminalprogramm, wird auch das Java Programm beendet.


Danke
 
Zuletzt bearbeitet:
Mitglied seit
10. Jan 2014
Beiträge
393
Punkte für Reaktionen
0
Punkte
0
Siehst du denn beim ps den Java Prozess ohne Parameter?
Könnte sein, dass du doch ps-w machen musst.
 

Herbert_Testmann

Benutzer
Mitglied seit
27. Jul 2009
Beiträge
1.114
Punkte für Reaktionen
1
Punkte
64
Hallo

es funktioniert wieder. Ich weiss nicht warum :(

Heute abend habe ich nebenbei IPKG installiert und deshalb die DS mehrfach neu gestartet. Mehr nicht

Der Prozess wird mit ps angezeigt und somit arbeitet auch das StartScript wieder.

Das einzig unschöne ist noch, dass es in /usr/syno/etc/rc.d/ als S99CCUHistorian.sh liegt, aber leider beim Start der DS nicht ausgeführt wird, oder den Java prozess nicht startet.
Wenn ich das Script in dem Verzeichnis manuell auf der Konsole mit sh S99CCUHistorian.sh start aufrufe, funktioniert es.

Aber das war schon immer so. Ich vermute, das es zu früh gestartet wird und irgentwelche Voraussetzungen noch nicht gegeben sind. Aber keine Ahnung, wie ich es verzögern soll. :(

schönen Feiertag noch.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
da du ja ipkg hast: mal probiert ob das Script allenfalls in /opt/etc/init.d/ beim Start ausgeführt wird?
Hast du opt mit mount oder mit symlink?
 

Herbert_Testmann

Benutzer
Mitglied seit
27. Jul 2009
Beiträge
1.114
Punkte für Reaktionen
1
Punkte
64
Hallo

Mit den anderen Startverzeichnis kann ich morgen abend testen. Muss morgen arbeiten

Ich habe lt Wiki zuerst einen symlink angelegt. Danach habe ich dann noch das veränderte Startscript angelegt.
Kann der symlink dann wieder weg? IPKG funktioniert jetzt jedenfalls.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
opt mit symlink ist imho besser als mit mount. Von dem her würde ich den symlink lassen
 

Herbert_Testmann

Benutzer
Mitglied seit
27. Jul 2009
Beiträge
1.114
Punkte für Reaktionen
1
Punkte
64
da du ja ipkg hast: mal probiert ob das Script allenfalls in /opt/etc/init.d/ beim Start ausgeführt wird?

Ich habe das Start Script mal dort hin verschoben und die DS über den DSM neu gestartet. Leider wurde die Anwendung auch da nicht automatisch gestartet.
Gibt es eine Möglichkeit so ein Start Script 1...2 min zu verzögern ??
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat