2011-10-12 19 views
49

Maté un símbolo del IRB de una manera no tan elegante (iniciado con heroku run irb), y ahora tenemos un proceso zombie que no puedo parecer para matar:Matar proceso abandonada en Heroku

Process  State    Command 
------------ ------------------ ------------------------------ 
run.3   up for 2h   irb -r ./init.rb 
web.1   up for 0s   thin -p $PORT -e $RACK_ENV -R $HER.. 

he intentado:

  • heroku restart
  • heroku ps:scale run=0
  • heroku ps:restart run.3

¿Alguien sabe cómo puedo obligarlo a abandonarlo?

Respuesta

101

me di cuenta de un nuevo comando ps:stop añade al cliente de línea de comandos Heroku hace unos días:
https://github.com/heroku/heroku/commit/a6d9eb7f314bf2c5f162a508e8d764286fb577bb

No estoy seguro de si ese cambio lo hizo en la versión 2.9.0, pero sería una pena tratar.

actualización

esto es ahora en el Heroku Toolbelt. Sólo tiene que ejecutar:

heroku ps:stop <process id from heroku ps> 

Ejemplo:

heroku ps:stop run.8729 
+0

¡Eso es todo, gracias! –

+12

tenga en cuenta que si está buscando una identificación de proceso típica como la que puede encontrar en los terminales * nix (por ejemplo, 54194), no la verá. En su lugar, use algo como 'heroku ps: stop run.3' – jbnunn

+0

Asegúrese de verificar con' heroku ps' que la detención se realizó correctamente. El cliente aceptará identificaciones de proceso inválidas y felizmente informará un éxito. Supuse que funcionó después de usar solo el número después de 'ejecutar', pero uno debe incluir' ejecutar'. Por ejemplo, 'heroku ps: stop run.1234' funciona si realmente tiene un proceso con ese nombre/ID,' heroku ps: stop 1234' no, pero se informa que funciona. –

0

de edición: se han arreglado este problema

Heroku no tiene una forma de matar a los procesos run.x abandonados.

Pero se eliminará automáticamente después de 24 horas.

+4

annoying ¿eh? Sufrí lo mismo: 24 horas de facturación para un proceso finalizado. ¡¡No es ideal!! –

+0

Sí exactamente. Si salgo de la consola y no termina, ¿me castigarán las 24 horas? Tonto, especialmente porque obviamente no hace nada –

+0

@BasharAbdullah, si ejecuta una consola de Rails, puede sentarse allí durante unos minutos entre comandos. ¿Qué esperarías que haga Heroku? ¿Mata a cualquier proceso que esté inactivo durante unos segundos/minutos/horas? Eso sería molesto para los procesos de la consola de rieles cuando intentas depurar. – WattsInABox

11

Gracias James !! Necesitaba actualizar mi cliente Heroku primero, y funcionó a las mil maravillas.

$ sudo gem install heroku 

$ heroku ps #to view processes 

$ heroku stop <process name here> 
Cuestiones relacionadas