Kan rails-server niet stoppen

Ik ben nieuw op het gebied van rails en ik gebruik een ubuntu-machine en de rubymine IDE. Het probleem is dat ik de spoorserver niet kan tegenhouden. Ik heb geprobeerd de server te stoppen door het rails-proces te beëindigen. Maar als ik pgrep -l railsuitvoer, wordt zo’n proces niet gevonden. Dus ik kan alleen ruby-processen doden, maar de server stopt niet.

Ik heb ./script/server stopgeprobeerd (sinds ik het begon door ./script/server startuit te voeren), maar dat werkte niet. Googelend en wat stackoverflow-berichten vond, probeerde ik de luisterpoort van de localhost-poort te wijzigen, maar zonder succes. Kan iemand helpen?


Antwoord 1, autoriteit 100%

U kunt andere poorten gebruiken, zoals de volgende:

rails server -p 3001

Normaal gesproken kunt u in uw terminal Ctrl + Cproberen om de server af te sluiten.

De andere manier om de Ruby on Rails-standaardserver (die WEBrickis) af te sluiten, is:

kill -INT $(cat tmp/pids/server.pid)

In uw terminal om de PID van het proces te achterhalen:

$ lsof -wni tcp:3000

Gebruik vervolgens het nummer in de PID-kolom om het proces te beëindigen:

Bijvoorbeeld:

$ kill -9 PID

En enkele van de andere antwoorden die ik heb gevonden zijn:

Om de rails-server te stoppen terwijl deze actief is, drukt u op:

CTRL-C
CTRL-Z

Je krijgt de controle terug naar bash. Typ vervolgens (zonder de $):

$ fg

En dit gaat terug in het proces, en sluit dan op de juiste manier Rails saf.

Het is een beetje vervelend, maar dit is zeker beter dan het handmatig beëindigen van het proces. Het valt mee en het is het beste wat ik kon bedenken.

Bijgewerkt antwoord:

Je kunt killall -9 railsgebruiken om alle actieve apps met “rails” in de naam te doden.

killall -9 rails


Antwoord 2, autoriteit 16%

u kunt het grep-commando op de volgende manier gebruiken,

ps aux | grep rails

en dan

kill -9 {process_id} 

Antwoord 3, autoriteit 9%

pkill -9 railsom het hele proces van rails te stoppen

Bijgewerkt antwoord

ps aux|grep 'rails'|grep -v 'grep'|awk '{ print $2 }'|xargs kill -9

Hierdoor wordt elk looprailproces afgebroken. Vervang ‘rails’ door iets anders om andere processen te stoppen.


Antwoord 4, autoriteit 7%

Hier volgen stappen om het serverproces te beëindigen:

1. lsof -i tcp:3000

2. kill -9 1234

waar 1234de PID is van proces: localhost:3000 weergave in stap 1.

OF

Verwijder file(server.pid) onder Rails.root/tmp/pids/en start de server opnieuw.

OF

open app in een andere poort met het commando:

rails s -p 3001


Antwoord 5, autoriteit 6%

Op mijn MAC werken de killall -9 railsniet. Maar killall -9 rubywel.


Antwoord 6, autoriteit 3%

Ik gebruik over het algemeen:

killall ruby

OF

pkill -9 ruby

die alle ruby-gerelateerde processen die draaien, zoals rails server, rails console, enz. zal doden.


Antwoord 7, autoriteit 2%

1. Verwijder eenvoudig het pid-bestand uit de rails-app-directory

Rails_app -> tmp -> pids -> pid file

Verwijder het bestand en voer het uit

rails start


2. Voor Rails 5.0 en hoger kunt u deze opdracht gebruiken

rails restart


Antwoord 8

Gebruik ctrl+com uw WEBRICK-server af te sluiten.

Helaas als het niet werkt, sluit dan krachtig de terminal en start deze opnieuw op.

Een andere truc is dat

1. open your system-monitor(a gui application) on ubuntu
2. Select processes tab 
3. Then look for a process having name 'ruby'
4. End that process

Antwoord 9

Verwijder de server.pid van de map TMP / PIDS.
In mijn geval was de fout: een server is al actief. Check /home/sbhatta/myApp/tmp/pids/server.pid.

Dus, ik delete server.pid

rm /home/sbhatta/myapp/tmp/pids/server.pid
Voer vervolgens door rails s


Antwoord 10

CTRL-Z moet normaal de truc doen.


Antwoord 11

Stap 1: Zoek wat zijn de items consumeren 3000 poort.

lsof -i:3000

Stap 2: Zoek het proces met de naam

voor Mac

ruby      TCP localhost:hbci (LISTEN)

voor ubuntu

ruby      TCP *:3000 (LISTEN)

Stap 3: Zoek de PID van het proces en dood het.

kill -9 PID

Antwoord 12

Het is zo eenvoudig als

pkill -9 ruby

niets meer niets minder


Antwoord 13

Als u een meer moderne versie van rails gebruikt en het gebruikt PUMA als de webserver, kunt u de volgende opdracht uitvoeren om het PUMA-proces vast te stellen:

ps aux | grep puma

Het zal resulteren in output vergelijkbaar met dit:

85923 100.0  0.8  2682420 131324 s004  R+    2:54pm   3:27.92 puma 3.12.0 (tcp://0.0.0.0:3010) [my-app]
92463   0.0  0.0  2458404   1976 s008  S+    3:09pm   0:00.00 grep puma

U wilt het proces dat niet verwijst naar grep. In dit geval is de proces-ID 85923.

Ik kan vervolgens de volgende opdracht uitvoeren om dat proces te doden:

kill -9 85923


Antwoord 14

Ik gebruikte killall -9 railszoals Sri voorgesteld en het werkte niet. Ik heb de opdracht aangepast op killall -9 rubyen de server onmiddellijk gesloten.

TL; DR: killall -9 ruby


Antwoord 15

Wanneer de railserver niet start, betekent dit dat het al draait, dan kunt u beginnen met het gebruik van nieuwe poort bijv.

rails s -p 3001

Of Het start en stopt in dat geval U wilt Delete Temp-map in rails directory structuur Het start de rails-server.


Antwoord 16

Controleer de /TMP/TMP/SERVER.PID

Er zit een PID-binnen.

Meestal, ik ziek doe “Kill -9 the_pid” in de CMD


Antwoord 17

Ik heb opgemerkt op Windows (ik gebruik 10, maar niet zeker of hetzelfde voor OLER). Als u CMD.exe en CTRL + C gebruikt, stopt de RAISL-server correct.

Echter, als u Git Bash gebruikt, het niet. Er staat dat het heeft, maar wanneer je naar de TMP-PID’s kijkt, is het er nog steeds.

Misschien een bug met git bash?


Antwoord 18

killall -9 rubyDOST ALLE DE RUBIELE PROCEDURES, EN OP MINISTE OP MIJN MACHINE, TRUIL SERPERS LEIDEN ALS RUBYPROCEDURE. killall -9 railsis veel specifieker en werkt niet voor oudere versies van rails-servers (het geeft een ‘rails: geen proces gevonden’ omdat het proces Ruby wordt genoemd)

opgetreden dit probleem een ​​tijdje geleden. Na het indienen van een formulier in activeadmin, de rails server gewoon opgehangen en ik was niet in staat om het te doden met behulp van een normale manier (zelfs na ctrl + z was nog steeds actief op de achtergrond). Learner’s antwoord geholpen, maar dit commando hoeft niet proces-id.


Antwoord 19

Het is te laat voor deze vraag.
Hier is mijn 2 cent. Ik maakte een rake taak voor het stoppen van de server wanneer ik geen toegang toe hebben.
Ik heb alleen getest op Mac dat wel.

Met deze kun je het gewoon toe te voegen aan uw project vervolgens de rake commando.

Hier ga je:

Gist link:-Laatste versie zal hier te zijn.
https://gist.github.com/houmanka/289184ca5d8d92de0499#file-server-rake

Sommige code in hier:

# Make a file under: `project_root/lib/tasks/server.rake`
# Then paste the following code
    namespace :server do
      desc "Stop the running server by killing the PID"
      task :kill do
        STDOUT.puts "Enter port number: "
        post_number = STDIN.gets.strip
        system "pid=$(lsof -i:#{post_number.to_i} -t); kill -TERM $pid || kill -KILL $pid"
      end
    end
# Then to use it in the terminal: `rake server:kill`

Antwoord 20

Zorg er ook voor dat je doet command Cntrl + C in dezelfde terminal (tab) dat wordt gebruikt om de server te starten.

In mijn geval had ik 2 tabbladen, maar ik vergat om de server te stoppen van het juiste tabblad en ik vroeg me af waarom Cntrl + C niet werkt.


Antwoord 21

Een super gemakkelijke manier zou zijn

gem install shutup

ga dan in de huidige map van uw rails te projecteren en run

shutup# dit zal de Rails doden proces die momenteel worden uitgevoerd

U kunt de opdracht ‘shutup’ elke keer dat u wilt gebruiken

vrijwaringsclausule: Ik ben de schepper van dit juweeltje

Let op: als u gebruik maakt RVM installeer de gem wereldwijd

rvm @global do gem install shutup

Antwoord 22

Voor mijn windows 10 machine, Ctrl - C + Ctrl -. D werken


Antwoord 23

We kunnen rails sessie doden onder Linux met PORT geen

fuser -k 3000/tcp 

hier 3000 is een port niet.
Nu is je server opnieuw op te starten, ziet u uw server is in lopende staat.


Antwoord 24

Ga als volgt te werk:

  1. Open uw project
  2. Selecteer in tmp map
  3. selecteer PID map
  4. delete server.pid bestand
  5. Nu begin je rails server

Antwoord 25

  1. Open het bestand met de locatie gegeven
    sudo vi /Users/user1/go/src/github.com/rails_app/rails_project/tmp/pids/server.pid

  2. zoek het process_id / thread_id waarbij de werkwijze wordt runnning.

  3. Dood de opgegeven proces / thread met kill -9 84699


Antwoord 26

Aan rails 6 met

ps aux | grep railsis niet retourneren van de server proces

ik moest doen

ps aux | grep puma

om het eigenlijke proces te vinden en vervolgens te doden met behulp van

kill -9 {process_id}


Antwoord 27

Druk op Ctrl - C het zal stoppen
Zo niet, controleer

Other episodes