Wenn ich den Rails-Server mit dem rails s
Befehl starte, wird er angezeigtA server is already running. Check C:/Sites/folder/Pids/Server.pids
Wenn ich die Datei öffne, wird nur eine 4-stellige Nummer ausgegeben. Wie kann ich dieses Problem beheben?
Zu Ihrer Information
- Diesmal wird keine andere Instanz von Rails cmd ausgeführt.
- Überprüfter Task-Manager zeigt jedoch nur an,
cmd.exe
dass kein anderer Prozess ausgeführt wird. (unter Windows).
Antworten:
Entfernen Sie die Datei: C: /Sites/folder/Pids/Server.pids
Erläuterung Zumindest in UNIX-Ländern verfolgen wir normalerweise die Prozess-ID (pid) in einer Datei wie server.pid. Ich denke, das macht hier das Gleiche. Diese Datei wurde wahrscheinlich von einem Absturz übrig gelassen.
quelle
netstat -a -o
an einer Eingabeaufforderung aus, um zu sehen, welcher Prozess Port 3000 verwendetTL; DR Führen Sie einfach diesen Befehl aus, um ihn zu beenden
Grundursache: Da die PID in einer Datei gesperrt ist und der Webserver der Ansicht ist, dass diese Datei bereits ausgeführt wird, bedeutet dies, dass sie bereits ausgeführt wird. Wenn ein Webserver geschlossen wird, wird diese Datei normalerweise gelöscht. In einigen Fällen erfolgt jedoch kein ordnungsgemäßes Löschen, sodass Sie die Datei manuell entfernen müssen. Neue Lösungen
wenn Sie Schienen laufen s
=> WEBrick booten
=> Rails 4.0.4 Anwendung beginnt in der Entwicklung am
http://0.0.0.0:3000
=>
rails server -h
Für weitere Startoptionen ausführen=> Strg-C zum Herunterfahren des Servers
Ein Server läuft bereits. Überprüfen Sie /your_project_path/tmp/pids/server.pid. Verlassen
Platzieren Sie also Ihren hier gezeigten Pfad /your_project_path/tmp/pids/server.pid
und entfernen Sie diese server.pid- Datei:
ODER Wenn Ihr Server getrennt wurde, befolgen Sie die folgenden Richtlinien:
Wenn Sie Ihren Rails-Server mit dem Befehl "Rails -d" getrennt haben, dann
Entfernen Sie den vom Schienen getrennten Server mit dem Befehl
ODER durch diesen Befehl
dann
ODER verwenden Sie diesen Befehl
Suchen und Beenden des Prozesses anhand des Portnamens, auf dem das Programm ausgeführt wird. Bei 3000 ersetzen Sie den Port, auf dem Ihr Programm ausgeführt wird.
Alte Lösung:
In diesem Beitrag finden Sie weitere Optionen. Rails Update auf 3.2.11 unterbricht die Ausführung mehrerer Server
quelle
sudo kill -9 $(lsof -i :3000 -t)
Dann sollten Sie den Ruby-Prozess sehen und können laufen
Sie sollten jetzt gut darin sein, den Prozess auszuführen
Das Ausführen mehrerer Prozesse scheint keine gute Idee zu sein, und nach dem, was ich gelesen habe, stimmen viele Menschen zu. Ich habe leider viele Speicherlecks mit Schienen bemerkt, daher konnte ich mir nicht vorstellen, dass zwei Prozesse ausgeführt werden. Ich weiß, dass meine Seitenaktualisierungen mit einer Überstundenzeit aufgrund der im Speicher gespeicherten Daten zunehmend langsamer werden.
quelle
quelle
-t
Option) und beendet den Prozess dann anhand dieser abgerufenen PID.Sie können den Prozess loswerden, indem Sie ihn beenden:
quelle
Vorarbeiter starten usw. Starten Sie den Dienst
quelle
Dies geschieht, wenn Sie Ihren Serverprozess beenden und die PID-Datei nicht aktualisiert wurde. Die beste Lösung besteht darin, die Datei Server.pid zu löschen .
Verwenden Sie den Befehl
quelle
gem install shutup
Gehen Sie dann in den aktuellen Ordner Ihres Rails-Projekts und führen Sie es aus
shutup
# Dadurch wird der derzeit ausgeführte Rails-Prozess beendetSie können den Befehl 'shutup' jederzeit verwenden
DICLAIMER: Ich bin der Schöpfer dieses Edelsteins
HINWEIS: Wenn Sie rvm verwenden, installieren Sie den Edelstein global
quelle
Wahrscheinlich haben Sie den Server angehalten durch:
^Z
.Die vier digitalen Zahlen, die
vim C:/Sites/folder/Pids/Server.pids
ausgegeben werden, sind die Prozess-ID.Sie sollten
kill -9 processid
die Prozess-ID durch die 4 von vim (oder einem anderen Editor) ausgegebenen Zahlen ersetzen.quelle
Wenn Sie unter Windows arbeiten, müssen Sie nur einen Schritt ausführen, um die Schienen neu zu starten. Geben Sie dann erneut "Schienen s" ein. Sie können loslegen.
quelle
Löschen Sie diese Datei unter Windows Rails 5.2
und Renn
nochmal.
quelle
Lauf:
fuser -k -n tcp 3000
Dadurch wird der Prozess beendet, der am Standardport 3000 ausgeführt wird.
quelle
Ich hatte gerade dieses Problem und habe versucht, es auf einen anderen Port einzustellen, aber das einzige, was ich tun musste, war, meinen zu löschen,
[app_directory]/tmp/pids/server.pid
und alles war in Ordnung.quelle
Lauf:
in Ubuntu / Linux
Oder
oder
quelle