InhaltsverzeichnisKlicke auf den Link, um zur gewünschten Stelle zu navigieren
Dieser Inhalt wurde automatisch aus dem Ukrainischen übersetzt.
Manchmal kommt es vor, dass das Verzeichnis tmp/pids auf der lokalen Maschine verloren geht. Aus verständlichen Gründen befindet es sich in der gitignore. Infolgedessen kann der Server nicht gestartet werden und zeigt einen Fehler an:
* Listening on http://0.0.0.0:3000bundler: failed to load command: puma (/Users/memecode/.rbenv/versions/3.3.5/bin/puma)/Users/memecode/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/gems/puma-6.5.0/lib/puma/launcher.rb:316:in `write': Datei oder Verzeichnis nicht gefunden @ rb_sysopen - tmp/pids/server.pid (Errno::ENOENT)
Der Fehlertext ist ziemlich wörtlich:
Datei oder Verzeichnis nicht gefunden @ rb_sysopen - tmp/pids/server.pid
Wir beheben den Fehler
Wir müssen das Verzeichnis tmp/pids selbst erstellen. Dazu kann man im Terminal Folgendes ausführen:
mkdir -p tmp/pids
Wir starten den Server neu, und er sollte erfolgreich starten und die Datei server.pid erstellen.
Rein aus Neugier kann man überprüfen:
ls tmp/pids
Es sollte die Datei anzeigen:
server.pid
Wozu dient server.pid?
Die Datei server.pid wird vom Rails-Server verwendet, um die Prozess-ID (PID) des aktiven Serverprozesses zu speichern. Diese PID hilft dem System zu verfolgen, welcher Prozess für den Server verantwortlich ist. Bevor ein neuer Server gestartet wird, überprüft Rails, ob diese Datei vorhanden ist. Wenn die Datei vorhanden ist und der Prozess, auf den sie verweist, noch aktiv ist, erlaubt Rails nicht, einen neuen Server zu starten, um Konflikte zu vermeiden.
Das bedeutet, dass genau dies dafür sorgt, dass Sie nicht versehentlich einen zweiten Server mit rails s in einem benachbarten Terminal-Tab starten.
Darüber hinaus hilft die Datei, den Server ordnungsgemäß herunterzufahren. Wenn der Server gestoppt wird, wird die Datei server.pid automatisch gelöscht, was signalisiert, dass der Server nicht mehr läuft und ohne Probleme neu gestartet werden kann. Wenn die Datei jedoch fehlt, erstellt Rails sie beim Start. Falls die Datei existiert, der Prozess, auf den sie verweist, jedoch nicht mehr aktiv ist, kann dies zu einem Fehler führen, und die Datei muss manuell gelöscht werden, bevor der Server erneut gestartet wird.
Dieser Beitrag hat noch keine Ergänzungen vom Autor.