Como matar un proceso/cerrar un programa desde una tty por si se nos traba el sistema
Pero como siempre era muy largo el titulo y esto lo penaliza google :D .
Algunas veces aunque casi sea un mito y mas en comparación con Windows,se nos traba Linux,mas que nada seria nuestra distribución y si se nos traba ya que hay muchas personas que usan de broma esto:
EnlaceY la verdad en GNU/Linux no se nos traba/bloquea tan horrible ya que ese parece un trojan horse con un loop para abrir ventanas,mas que nada esto pasa por nuestros modulos/drivers y por programas que instalamos mal,no funcionan bien en nuestro sistema, también yo uso esto al estar haciendo mis programas y si escribo algo mal puedo tumbar el sistema o simplemente trabarlo,incluso en Ubuntu últimamente cuando hacemos muchas cosas,o porque un programa esta mal programado ya es muy común verlo bloqueado.
Así que aquí el tutorial por si se les traba (como diríamos coloquialmente)
Ya que trabado puede no ser bien entendido, así que usemos un hash de perl para entenderlo:
my %palabras = {
"trabar" =>"bloquear"
};
Tutorial
1.Primero necesitamos saber el proceso de nuestro programa,este lo obtenemos desde la consola,pero si no esta disponible por eso mismo,abrimos una tty
Tutorial
2.Para saber el PID (identidad del proceso) de un proceso podemos con
top
Nota:Esta es mi terminal,pero esto debe ser la tty,solo use la terminal para poder sacar los screenshots.
Pero top se tarda mucho y esta en constante movimiento :S
Ya que el proceso es el numero de la izquierda,y por ejemplo si se nos traba gedit, haríamos esto
top | grep geditPero como dije se tarda mucho :(
Mejor usamos ps
Así que para ver el PID de un programa con esto lo hacen
ps -efY filtramos un poco
ps -ef | grep gedit
Como dije es el numero de la izquierda(el primero),y la primera linea,ya que la segunda es el mismo PID que pide el PID por eso siempre nos dará un PID distinto.
De hecho si queremos filtrarlo mas podemos usar awk
ps -ef | grep gedit | awk '{print $2}'
O para que no se muestre el PID que pide el PID podemos añadir un parámetro al pipe para cortarlo:
ps -ef | grep -v grep | grep gedit | awk '{print $2}'
Y listo ya tenemos el PID
3.Matar el PID
Para matar ese proceso solo basta con hacer kill sobre el PID
kill PID
También podemos usar
pidof PIDY también para mas fácil :
pkill geditQue?
pkill gedit ¡WTF! entonces para que tanto PID
Así es, se puede matar una aplicación de esa manera,pero yo recomiendo que lo hagan por PID ya que puede que tengan varias sesiones en distintas tty,como yo,en una Gnome SHELL,en otra AWESOME, en otra TTY,etc.
Tambien otra opcion es por si no sabemos el nombre del programa en proceso,por ejemplo,como se llama Google Chrome en un proceso?
Google-Chrome
google_chrome
Chrome
chrome
ect ?
Y sabremos el nombre....
¿?
Como?
Pues hacemos un filtrado básico con grep,por ejemplo si se llama chrome,podemos probar
ps -ef | grep goo
o
ps -ef | grep hrome
Y si lo matamos por nombre puede dar errores,o cerrarnos algo que no queremos
De hecho también existe
killall geditxkill,etc
Y cuando hayamos eliminado ese proceso/programa regresamos a nuestro escritorio :D
Tengo que decirte que para que no se muestre el PID del pipe para solitar el PID necesitas cortarlo con grep -v
ResponderBorrarps -ef | grep -v grep | grep gedit | awk '{print $2}'
De esta manera lo harás mas especifico :)
Esto me recuerda cuando se nos bloqueo una pc en un cafe internet casi no la cobran xDDDD
Si XD,ahora ya da risa pero en el momento dan ganas de llorar,maldita pc con #"=?* Windows xp y ya no reconocía nada la maldit*.
BorrarPero hasta a los mejores les a pasado XD
Editare la entrada con el comando que mencionaste,no sabia que grep hacia eso
Es como grep /¡palabra/ de perl no?
gracias :D
Pues en el --help dice --invert-match
BorrarLo que hace es seleccionar líneas que no coinciden.
Como creo que dices,en perl es grep(!/palabra/, @array)
:)
Si me refería a esto grep(!/palabra/),aveces se me va el avión :|
BorrarDebo comenzar a usar mas --help,man,info,usaba un script en perl,para hacer eso.
:D
Aveces...
BorrarTanto que se esfuerzan los programadores para hacer el manual del programa y seguro que primero buscas en google o intentas crear algo para hacer eso en vez de hacer --help
LOL