Como parar procesos colgados con un nombre en especifico.

Imagen de The One

Para matar procesos con un nombre en específico podríamos utilizar un pequeño Script.

Lo podemos crear de la siguiente manera:

vi parar

Ingresamos o copiamos estos datos:


#!/bin/bash

s=`tput setf 8`
n=`tput op`

PID=`/sbin/pidof $1`

if [ "$PID" = "" ] ; then

echo "ERROR: El proceso ${s}"$1"${n} no fue encontrado y no se
lo pudo detener, puede ser que el nombre del proceso este mal escrito
o no se este ejecutando."

else

echo "El proceso ${s}"$1"${n}, con PID ${s}"$PID"${n} ha sido
detenido satisfactoriamente."

kill $PID
fi

Al finalizar guardamos los cambios, damos permiso de ejecución “chmod 755 parar” y lo guardamos en el directorio /sbin, claro que le pueden poner el nombre que Uds. quieran.

Al momento que tengan colgado un proceso, por ejemplo, salieron el sistema de una forma incorrecta y en este estaban ejecutando iptraf o por acidente se les apago el equipo desde donde estaban entrando al Linux, y como salieron erróneamente de este y quieren volver a ingresar al iptraf, este no les va a dejar, y si damos "ps -ef" nos va a mostrar que se esta ejecutando aun, entonces aquí ponemos a prueba a este salvador Script, lo ejecutamos de la siguiente manera:

parar iptraf

y como lo va a encontrar les saldrá un mensaje parecido a esto:

"El proceso iptraf, con PID 7380 ha sido detenido satisfactoriamente."

Esto lo utilizo en CentOS 4.x o 5.

Eso es todo, espero les sirva. ;)

Comentarios

killall

Imagen de pepo

Pues eso: killall

¿???

------------------------------------------------
Linux User Registered #232544
Jabber : pepo@jabberes.org
Ekiga : pepo@ekiga.net
ICQ : 337889406
GnuPG-key : www.keyserver.net

------------------------------------------------
Linux User Registered #232544
Jabber : pepo@jabberes.org
Ekiga : pepo@ekiga.net
GnuPG-key : www.keyserver.net

Yo también uso killall, es

Imagen de acl

Yo también uso killall, es bastante menos trabajo.

Pero solo para divertirnos un poco, también podríamos usar:


#!/bin/sh

ps aux | grep "^$1" | awk '{print $1}' | xargs kill

¿Quién puede hacer un killall con menos líneas y sin killall (obiamente)?
--
haber != a ver
ha != a

ps -aux no

Imagen de acl

Y por cierto, 'ps -aux' es incorrecto. Si vas a usar las opciones de BSD, no va el -. Si vas a usar las opciones de System V debería ser 'ps -ef' y ahí si va el -. ps -aux es un híbrido feo, hediondo y no debería existir.
--
haber != a ver
ha != a

En realidad el mismo ps se

Imagen de acl

En realidad el mismo ps se queja cuando usas esa sintaxis. Aquí está la salida de mi máquina:


$ ps -aux
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.0 1548 544 ? Ss 09:41 0:01 init [3]
root 2 0.0 0.0 0 0 ? S< 09:41 0:00 [kthreadd]
...
...

Las formas correctas son 'ps aux' o 'ps -ef'. Los que enseñan y los que aprenden deberían leer los mensajes de los comandos que corren. La verdad intento corregir ese error cada vez que lo veo. No he visto ninguna guía de redhat que recomiende -aux.
--
haber != a ver
ha != a

mmmm, esto me

Imagen de The One

mmmm, esto me sale:


UID PID PPID C STIME TTY TIME CMD
root 1 0 0 07:06 ? 00:00:00 init [3]
root 2 1 0 07:06 ? 00:00:00 [migration/0]
root 3 1 0 07:06 ? 00:00:00 [ksoftirqd/0]
...

No me da ese Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html que veo que tu tienes.

Esto sí estuvo raro. ¿Qué

Imagen de acl

Esto sí estuvo raro. ¿Qué distro usas? El warning está en la fuente de procps y ha estado ahí desde hace años. Probé máquinas gentoo y debian y sí me dan el warning...

--
haber != a ver
ha != a

Y del manual de

Imagen de acl

Y del manual de ps:

[quote]
Note that "ps -aux" is distinct from "ps aux". The POSIX and UNIX standards
require that "ps -aux" print all processes owned by a user named "x", as well
as printing all processes that would be selected by the -a option. If the user
named "x" does not exist, this ps may interpret the command as "ps aux"
instead and print a warning. This behavior is intended to aid in transitioning
old scripts and habits. It is fragile, subject to change, and thus should not
be relied upon.
[/quote]
--
haber != a ver
ha != a