Buscando Script Para Linux

Buenas, estoy buscando ejemplos de script de linux de un nivel medio/bajo como este: "Script que acepte como parámetro el nombre de un proceso, lo localizará y si está en funcionamiento, matarlo." Se que se usaría un ps aux para localizarlo y cut para obtener el número de proceso ya que la orden kill trabaja con estos dígitos. Digamos q acabo de empezar este tipo de programación y toy un poquito verde [boing]


He visto algunos script en otros post pero necesito más [angelito]

Si alguien conoce alguna web dnd encontrarlos le estaría muy agradecido ;)

Salu2!
Jalan escribió:Buenas, estoy buscando ejemplos de script de linux de un nivel medio/bajo como este: "Script que acepte como parámetro el nombre de un proceso, lo localizará y si está en funcionamiento, matarlo." Se que se usaría un ps aux para localizarlo y cut para obtener el número de proceso ya que la orden kill trabaja con estos dígitos. Digamos q acabo de empezar este tipo de programación y toy un poquito verde.

He visto algunos script en otros post pero necesito más [angelito]


Dos cosas sobre lo que dices:

a) Si tu objetivo es resolver el problema, usa killall que te permite hacer eso que quieres directamente con el nombre.

b) Si tu objetivo es hacer el script para practicar, adelante. Ya sabes las herramientas que tienes que usar: ps, cut y kill. En realidad, te falta una, porque tienes que quedarte solamente con las líneas de salida de ps que contienen el nombre del programa y ninguno de esos tres comandos te ofrece eso. ¿Por qué no intentas hacerlo?¿Qué te impide empezar?:

man ps
man cut
man kill
man

Si algo no te sale, lo preguntas por aquí y te echamos un cable.

Puedes también buscar en google por bash howto, bash programming, bash tutorial y cosas por el estilo.

Por cierto, que lo que pretendes (sin killall) se puede resolver en una sola línea con un par de tuberías sin necesidad de recurrir a un script con variables y lo demás. Pero no lo escribo aquí para no darte pistas.
Yo no soy demasiado bueno programando bash pero si lo que quieres es encontrar un proceso y matarlo con una sola linea te deberia bastar , por ejemplo para matar al xmms:

ps -aux | killall xmms

Si lo quieres hacer en forma de script pasandole el parametro del programa a cerrar:

ps -aux | killall $1

y ejecuta el programa ./programa xmms

Si quieres hacerlo solo con kill tendras que usar como dices la herramienta cut y tambien grep para quedarte solo con esa linea como te dice auxiliar.

Tambien se le podria incluir la sentencia if para que si esta funcionando te devuelva algo como "proceso encontrado y eliminado" o en caso contrario "no se encontro ningun proceso con ese nombre".
Anjel escribió:ps -aux | killall xmms


No, hombre, el ps no pinta nada. Si usas killall, basta:

killall xmms


A lo que yo me refería era a esto:

ps ax | awk '/xmms/ {print $1}' | xargs -n1 kill -9


awk hace las funciones de grep+cut. Los pid (puede haber varios) se pasan a xargs que se los proporciona como argumento uno a uno a kill.
Wenass

Pues aquí sigo probando las variantes del kill.
Algo que me ha pasado. Intente matar un programa con killall pero realmente no lo mataba, tuve q usar killall -9 para q funcionase. Lo extraño es q luego lo probe en otro ordenador y si que se ejecuto correctamente [agggtt]
No, hombre, el ps no pinta nada. Si usas killall, basta:

killall xmms


Tienes razon , al contestar estaba tambien haciendo el script utilizando ps , grep , if y algun echo que no me fije al poner eso que dices , ps no hacia falta.

Veo mi script que lleva 7 lineas y luego el tuyo en una linea y Oooh , vamos que mejor ni le pongo aqui XD.
No sería más facil con un kill -s 9 `pidof xmms`

[chulito]
Porque pide un script, pero como dice auxiliar (a). Mejor usar killall para esto...

Salu2.Ferdy
7 respuestas