75 votes

Comment arrêter un serveur Daemon dans Rails ?

J'exécute mon application Rails en utilisant ce qui suit

  $script/server -d webrick

Sur mon système Ubuntu, la commande ci-dessus fait tourner le serveur webrick en arrière-plan. J'ai pu tuer le processus en utilisant la commande kill

  $kill pid

Est-ce que rails fournit une commande pour arrêter le serveur démon qui tourne en arrière-plan ?

comme celui fourni par rails pour démarrer le serveur , Merci .

EDITAR Quand est-il approprié de démarrer le serveur démon ? Tout scénario en temps réel sera utile.

82voto

magnum Points 765

Si cela peut être utile, sous linux vous pouvez trouver quel processus utilise un port (dans ce cas 3000) que vous pouvez utiliser :

lsof -i :3000

il retournera aussi le pid

36voto

Douglas Meyer Points 743

Comme l'a dit Ryan :

le pid que vous voulez est dans tmp/pids/

server.pid est probablement le fichier que vous voulez.

Vous devriez être en mesure d'exécuter kill -9 $(cat tmp/pids/server.pid) pour faire tomber un serveur démonisé.

32voto

pguardiario Points 19925

Que diriez-vous d'une tâche de ratissage ?

desc 'stop rails'
task :stop do
    pid_file = 'tmp/pids/server.pid'
    pid = File.read(pid_file).to_i
    Process.kill 9, pid
    File.delete pid_file
end

exécuter avec rake stop ou sudo rake stop

18voto

Ryan Points 840

L'identifiant du processus du serveur démon est stocké dans le répertoire de votre application tmp/pids/. Vous pouvez utiliser votre kill process_id avec les informations que vous y trouverez.

17voto

Nowaker Points 2449

Le seul approprié pour tuer le serveur par défaut de Ruby on Rails (qui est WEBrick) :

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

Si vous utilisez Mongrel, c'est suffisant :

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

Utilisez kill -9 si votre démon s'est arrêté. Rappelez-vous les implications de kill -9 - si les données conservées dans les caches d'Active Record n'ont pas été vidées sur le disque, vous perdrez vos données. (Comme je l'ai fait récemment)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X