"ps" zeigt laufenden Prozess nicht an.

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

Herbert_Testmann

Benutzer
Registriert
27. Juli 2009
Beiträge
1.114
Reaktionspunkte
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
 
den ps auch manuell auf der Konsole gemacht? Gleiches Ergebnis?
 
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.
 
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.
 
kannst du sicher sein, dass er wirklich läuft? Ggf eine Fehlermeldung wenn du 2>/dev/null weglässt?
 
Meine Erfahrung mit DS und nohup ist, dass es nicht funktioniert.
Vielleicht mache ich aber auch was falsch.....
 
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:
Siehst du denn beim ps den Java Prozess ohne Parameter?
Könnte sein, dass du doch ps-w machen musst.
 
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.
 
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?
 
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.
 
opt mit symlink ist imho besser als mit mount. Von dem her würde ich den symlink lassen
 
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 ??
 
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