Ich bin auf einem Mac und mache:
rails server
Ich bekomme:
2010-12-17 12:35:15] INFO WEBrick 1.3.1
[2010-12-17 12:35:15] INFO ruby 1.8.7 (2010-08-16) [i686-darwin10.4.0]
[2010-12-17 12:35:15] WARN TCPServer Error: Address already in use - bind(2)
Exiting
Ich weiß, dass ich einen an einem neuen Port starten kann, aber ich möchte diesen Prozess beenden.
ruby-on-rails
Blankman
quelle
quelle
PID
durch die tatsächliche Nummer ersetzen, die bei der Eingabe der ersten Codezeile in Ihrer Konsole angezeigt wird (z12345
. B. ).lsof -wni tcp:3000
wird immer zeigen alle Prozesse auf diesem Protokoll hören: Port - Kombination. (wobei 3000 durch Ihren lokalen Server-Port ersetzt werden soll, z. B. in Rails ist dies standardmäßig 3000).kill -9 $(lsof -i tcp:3000 -t)
quelle
-t
bedeutet,specifies that lsof should produce terse output with process identifiers only and no header - e.g., so that the output may be piped to kill(1).
dass Siekill
kill -9
durch Auswendiglernen.Sie müssen die Prozess-ID des Programms über den TCP-Port 3000 abrufen. Um die Prozess-ID abzurufen
Und dann mit dieser Prozess-ID einfach den Prozess mit dem Befehl ubuntu kill beenden.
Oder führen Sie einfach den unten genannten Kombinationsbefehl aus. Es wird zuerst pid holen und dann diesen Prozess beenden.
quelle
kill -9
durch Auswendiglernen.Wenn Sie auf diese Frage stoßen, die sich nicht auf einem Mac befindet: Wenn Sie wissen, dass Ihr Server auf Port 3000 ausgeführt wird, können Sie dies auf einmal tun, indem Sie Folgendes ausführen:
Aber wie Toby erwähnt hat, ist die Implementierung von Fixiereinheit unter Mac OS ziemlich primitiv und dieser Befehl funktioniert auf Mac nicht.
quelle
-v
Flagge zeigt auch eine kleine Menge an Informationen darüber, welcher Prozess beendet wurde. Alsofuser -kv 3000/tcp
. Leider hat die Fixiereinheit von MacOS diese Fähigkeit nicht.kill $(lsof -ti tcp:3000)
ist jedoch ein ziemlich nahes Äquivalent.Manchmal besteht die Möglichkeit, dass der Rails-Server nicht ordnungsgemäß geschlossen wird. Sie können den von Schienen verwendeten Prozess finden
Die Ausgabe wird wie sein
Hier wird process_id 12609 von Ihrem Rails-Server verwendet.
Sie können es leicht auf Befehl töten
quelle
kill -9
durch Auswendiglernen.ps aux | grep puma
Alle obigen Antworten sind wirklich gut, aber ich brauchte eine Möglichkeit, so wenig wie möglich in das Terminal zu tippen, also habe ich ein Juwel dafür geschaffen. Sie können den Edelstein nur einmal installieren und den Befehl 'shutup' jedes Mal ausführen, wenn Sie den Rails-Prozess beenden möchten (während Sie sich im aktuellen Ordner befinden).
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
lsof
Ansatz ist zuverlässiger.ps aux | grep Rails Mit diesem Befehl können Sie den Server beenden
quelle
Standardmäßig verwendet der Rails-Server Port 3000.
Sie haben also zwei Möglichkeiten, den Rails-Server auszuführen.
1. Entweder können Sie den Server auf einem anderen Port ausführen, indem Sie mit dem folgenden Befehl einen benutzerdefinierten Port definieren.
rails s -p 3001
2. Oder Sie können den gesamten laufenden Ruby-Prozess beenden, indem Sie den folgenden Befehl
killall -9 ruby
ausführen und dann ausführen
rails server
quelle
Einzeilige Lösung:
quelle
Eintippen:
Suchen Sie dann nach -w, -n und -i
-i: Internet-Zeug -n: macht es schneller -w: schaltet Warnungen um
Es gibt viel mehr Details auf den Manpages
quelle
Wenn Sie sich auf einem Windows-Computer befinden, führen Sie die folgenden Schritte aus.
Dort finden Sie eine Datei namens server.pid
Lösche es.
Das ist es.
EDIT: Bitte beziehen Sie sich darauf
quelle