wie stoppt man den Server? und weitere Fragen...

  • hi,


    ich habe mehr oder weniger blauäugig diese Anleitung http://cwalz.de/index.php/Thre…atische-Benachrichtigung/ befolgt und würde den Server gerne wieder stoppen um ihn erneut zu starten.


    Kann mir jemand sagen wie das geht?


    Zudem: Gibt es eine detailliertere Anleitung, wie man das Teil zum Laufen bekommt?


    Fragen, die sich mir aktuell stellen:

    • Kann man die config so lassen?
    • woher weiß ich, ob node.js am Laufen ist?
    • wie richte ich einen Daemon ein, der den Dienst automatisch ausführt?
    • was genau trägt man im ACP unter Push-Server ein? (System->Optionen->Allgemein->System->Push-Server)

    In Computerspielen würde man mich als n00b in diesen Thematiken bezeichnen. Deshalb bitte ich um eine nachvollziehbare Hilfestellung :)


    Danke & Gruß,


    Afox


    Edith: Node.js habe ich mit Hilfe dieser Anleitung installiert http://www.sysadminslife.com/l…an-squeeze-wheezy-ubuntu/

    • Offizieller Beitrag

    Hallo,


    a) Du kannst den Dienst entweder über ein STRG+C stoppen, oder indem du ihm ein Signal (TERM, INT) sendest
    b) Die Konfiguration kann so bleiben
    c) Inwiefern „ob node.js am Laufen ist“?
    d) Da gibt es verschiedene Möglichkeiten, am einfachsten ist wohl ein Init-Skript in Kombination mit forever
    e) Es wird der Host angegeben, unter dem nodePush zu erreichen ist. Im Falle der Bastelstube ist das: https://tims.bastelstu.be

    • Offizieller Beitrag

    Hallo,


    der von dir vergebene Inbound-Socket, ist bereits in Nutzung (EADDRINUSE => ERROR: ADDRESS IN USE => Fehler: Adresse bereits in Nutzung).
    Du hast wohl die Datei /var/customers/webs/AVN/wcf/acp/be.bastelstu.wcf.nodePush/tmp/inbound.sock nicht gelöscht (wobei das auch glaube ich nirgends erwähnt wird ;) ).


    Ein STRG + C funktioniert nur, wenn du den Prozess im Terminal gestartet und gerade noch offen hast (oder er wenn zum Beispiel in einem Screen läuft und du diesen dann offen hast).
    Signale kann man zum Beispiel per kill an einen Prozess senden (sonst einfach mal im man kill nachsehen).

  • aaaaahhhhh X/


    beim cleanup kam EACCES permission denied


    bezüglich der forever Geschichte: https://github.com/nodejitsu/f…iki/Detailed-installation

    • ist die verlinkte Installation auch für ein bereits installiertes node.js auf Debian?
    • die Installation sollte nicht unter root ausgeführt werden, oder?
    • Tim erwähnte die Kombination mit dem init-Skript - ist das hierbei enthalten oder muss das noch händisch nachgezogen werden? Wenn ich es richtig verstanden habe muss ein solches Skript nach /etc/rc"Zahl".d gelegt werden?

    Sorry für die n00bigen Fragen, aber ich bin noch nicht drin :X

    • Offizieller Beitrag

    ist die verlinkte Installation auch für ein bereits installiertes node.js auf Debian?


    Wenn node.js installiert ist, einfach npm install forever -g nutzen, dann wird forever global mit dem node-Package-Manager installiert.


    die Installation sollte nicht unter root ausgeführt werden, oder?


    As of version 0.3, it is recommended to run npm as root.
    This allows npm to change the user identifier to the nobody user prior
    to running any package build or test commands.


    Das Init-Script musst du dir wohl selber schreiben, ja.

    • Offizieller Beitrag

    Hallo,


    ist die verlinkte Installation auch für ein bereits installiertes node.js auf Debian?

    Du benötigst lediglich den letzten Teil: npm install forever -g.

    die Installation sollte nicht unter root ausgeführt werden, oder?


    Die Installation benötigt vermutlich Root-Rechte, um die entsprechenden Dateien zu schreiben.

    Tim erwähnte die Kombination mit dem init-Skript - ist das hierbei enthalten oder muss das noch händisch nachgezogen werden? Wenn ich es richtig verstanden habe muss ein solches Skript nach /etc/rc"Zahl".d gelegt werden?

    Das ist nicht enthalten und muss manuell angelegt werden. Wie das korrekt bei Debian gemacht wird erklärt dir das Internet.


    Bezüglich des EACCES: Überprüfe den Benutzer von den *.sock-Dateien und dem Ordner in dem sie liegen. Wenn du nodePush als root startest und die Konfiguration nicht anpasst, dann muss nobody in der Lage sein die Dateien zu löschen.

  • Ok, besten Dank für Eure Hilfe!


    Ich versuche das gerade mit der Init Geschichte und es gibt unterschiedlichste Wege und Anleitungen wie man das scheinbar lösen kann. Es wird aber oft von einer "App.js" gesprochen. Kann mir jemand zufällig noch sagen, wie der Pfad und die passende Datei heißt?


    Ich tippe bzgl. des Pfades auf


    /usr/local/lib/node_modules/


    in diesem sind die Verzeichnisse npm und forever


    welche "App.js" und welcher Pfad muss denn angegeben werden?

  • sorry aber ich bin wohl zu doof dafür. falls irgendjemand ein passendes Skript als Vorlage und eine Anleitung wie ich dieses einbinde für mich hat, wäre ich unendlich dankbar. OS ist bei mir Debian

    • Offizieller Beitrag

    Hallo,


    sorry aber ich bin wohl zu doof dafür. falls irgendjemand ein passendes Skript als Vorlage und eine Anleitung wie ich dieses einbinde für mich hat, wäre ich unendlich dankbar. OS ist bei mir Debian

    Ich könnte dir zwar prinzipiell mein Init-Skript zukommen lassen und du kannst es dir dann anpassen, allerdings solltest du dir bewusst sein, dass dir womöglich elementare Kenntnisse zur Verwaltung eines Servers fehlen, diese solltest du dir auf jedenfall zeitig aneignen.

  • das wäre der Hammer. Ich wäre dir wirklich sehr dankbar! Habe meinen Server noch nicht sehr lange und merke aber, dass ich da noch einiges Lernen kann. Vor allem was die Linux Basics angeht...

    • Offizieller Beitrag
  • dankeschön :)


    Also wenn ich es richtig sehe muss lediglich der Pfad APP_ROOT="/srv/www/be/bastelstu/tims/wcf/acp/be.bastelstu.wcf.nodePush"


    und su bastelstube -s /bin/bash -c angepasst werden.


    Darf ich dich zu Letzterem noch fragen, welche Rechte bei dir der Nutzer bastelstube hat? Ist dieser Teil der Gruppe "root"? Denn wenn ich es richtig verstanden habe muss der betroffene Befehl mit root Rechten ausgeführt werden?


    Das Script liegt auch bei dir in /etc/init.d/, richtig?

    • Offizieller Beitrag

    Hallo,


    du musst den Pfad zu nodePush anpassen und den Pfad zu forever. Der Benutzer bastelstube ist ein ganz einfach System-Benutzer ohne zugewiesene Shell. Ansonsten kann ich nur wiederholen: Dir fehlen elementare Linux-Kenntnisse, eigne dir diese an, bevor du einen Server betreibst der mit 100MBit (oder noch schlimmer: 1 GBit) an das Internet angeschlossen ist: Hätte ich beispielsweise keine Sicherheitsfunktionen in nodePush eingebaut, dann würde nodePush bei dir unter root laufen! Das ist grob fahrlässig.

  • Hier mein vorläufiges Ergebnis (unten steht was ich geändert/angepasst habe)



    Änderungen:

    • Benutzer bastelstube entfernt
    • APP_ROOT angepasst
    • app-rootf definiert (forever Pfad - ich hoffe, dass dies der richtige ist)
    • $APP_ROOT/node_modules/.bin/ durch $app_rootf ersetzt (für jeweils Start, Stop, Restart)

    die nächsten Schritte wären dann:

    • Skript ausführbar machen su chmod 755 /etc/init.d/skriptname
    • automatische Eintragung der Runlevel mittels su update-rc.d skriptname defaults

    Bitte korrigiert mich wenn ich falsch liege :huh:

  • ach damn


    Zitat

    root@forum:~# update-rc.d nodepush defaults
    update-rc.d: using dependency based boot sequencing
    insserv: Service nginx has to be enabled to start service nodepush
    insserv: exiting now!
    update-rc.d: error: insserv rejected the script header


    benötige ich dafür wirklich nginx oder habe ich einfach etwas falsch gemacht?

  • Hallo,


    wenn nginx nicht installiert ist, ändere die Zeile


    Code
    # Required-Start:    $local_fs $remote_fs $network $syslog nginx


    und entferne nginx oder ersetze es durch apache2

  • Gott oh Gott, ich habe es gleich (hoffentlich)


    Immerhin kommt schoneinmal die Meldung "Push Server started" wenn ich das Skript ausführe. Allerdings verstehe ich die Meldung


    /etc/init.d/nodepush: line 1: ?#!/bin/bash: No such file or directory


    nicht. woran kann das liegen?


    Habe das Skript als UTF8 mit UNIX Zeilenenden im Notepad++ abgespeichert.


    Hier nochmal die vollständigen Zeilen.


    Code
    root@forum:~# /etc/init.d/nodepush start
    /etc/init.d/nodepush: line 1: ?#!/bin/bash: No such file or directory
    warn:    --minUptime not set. Defaulting to: 1000ms
    warn:    --spinSleepTime not set. Your script will exit if it does not stay up f
    or at least 1000ms
    info:    Forever processing file: /var/customers/webs/AVN/wcf/acp/be.bastelstu.wcf.nodePush/app.coffee
    Push Server started



    wenn ich danach forever list eingebe erhalte ich Folgendes


    Code
    root@forum:~# forever list
    info:    Forever processes running
    data:        uid  command
                         script
              forever pid   logfile                 uptime
    data:    [0] Zev9 /var/customers/webs/AVN/wcf/acp/be.bastelstu.wcf.nodePush/node