Ich habe ein Problem mit node.js, auf dem ein kleiner Webserver läuft, der Dateien aus dem Dateisystem bereitstellt. Beim Start mit node server.js
funktioniert es wie ein Zauber, aber wenn es mit nohup oder für immer gestartet wird, kann node.js die Dateien nicht finden.Fehler: EBADF, beschädigter Dateideskriptor bei laufendem Knoten mit nohup von forever
6
A
Antwort
1
Es stellte sich heraus, dass der Dateipfad der Datei das Problem war. Wenn der Server unter Verwendung des Knotens ausgeführt wird, ist das Arbeitsverzeichnis dasselbe wie die Datei server.js, daher kann node.js die Datei finden.
Beim Starten während der Verwendung von Nohup oder einfach nur für immer beginnen, scheint das Arbeitsverzeichnis nicht mit server.js identisch zu sein.
Ich löste dies, indem ich die globale Variable __dirname
dem Dateinamen voranstellte.
5
Dies funktioniert für mich:
nohup node server.js </dev/null
2
Eine andere Lösung ist es, das Kommando in einer Subshell mit Klammern auszuführen. (nohup node index.js)
Verwandte Themen
- 1. beschädigter Dateideskriptor realted zu Threads
- 2. java.net.SocketException: recvfrom fehlgeschlagen: EBADF (Bad Dateideskriptor) Android
- 3. Mongrel hängt mit 100% CPU/EBADF (Bad Dateideskriptor)
- 4. Probleme bei den Daten von beschädigter Datenbank
- 5. Neustart von Dropbox-Daemon bei laufendem
- 6. Fehler mit babel-Knoten
- 7. Codeception. Ausgabevariable bei laufendem Szenario
- 8. Bereitstellen von Meteor mit Forever
- 9. Was ist fd (Dateideskriptor) in Knoten js
- 10. Möglicher "Fail Fast" bei laufendem Rechentest mit Minitest 5?
- 11. Lebensdauer der Anwendungsklasse bei laufendem Dienst
- 12. Programmgesteuerte Profilerstellung bei laufendem Test durchführen
- 13. Mit laufendem Dienst kommunizieren
- 14. "Ignorieren" P/Invoke bei laufendem Mono
- 15. Stack-Trace mit Zeilennummern bei laufendem Cargo-Lauf
- 16. Beschädigter Speicher von react-redux
- 17. Aufruf einer Funktion mit nohup
- 18. Reparieren beschädigter Macports
- 19. File.Copy hängt an beschädigter Datei
- 20. nohup scheint festzustecken
- 21. Fehler System: 9: Bad Dateideskriptor (boost :: filesystem)
- 22. Beschädigter Git Baum?
- 23. Haskell `forever` Art Signatur
- 24. Firebase-Speicher, der Netzwerkunterbrechungen bei laufendem Download behandelt
- 25. nodejs: forever antwortet nicht
- 26. Wie man Daten bei laufendem Test in den Schienen
- 27. NodeJS/Forever archiviert Protokolle
- 28. Den node.js-Server unter Ubuntu unter Verwendung von forever ausführen
- 29. Sehr lange Verzögerung bei laufendem C# Unit Test in VS2015
- 30. Spacemacs Font Beschädigter
Whoa, ich habe keine Ahnung warum, aber das funktioniert. ' dev/null' deaktiviert die manuelle Eingabe des nohup-Befehls, aber wie dies mit dem Dateipfad zusammenhängt, weiß ich nicht. Ich habe persönlich Supervisor und nicht für immer, aber der Fehler war der gleiche. Ich füge hinzu, dass es nicht notwendig war, bis ein Update im Supervisor es auf manuelle Eingabe hören ließ. –