2009-12-01 21 views
10

He creado un puesto de trabajo con el comando at en Solaris 10.Lista y matar a puestos de trabajo en UNIX

Está funcionando ahora, pero quiero acabar con él, pero no sé cómo puedo encontrar el número de empleos y cómo matar ese trabajo o proceso.

+2

Primero haz 'man ps'. Lea eso. Luego actualiza tu pregunta en función de lo que lees. –

+1

S.Lott: 'at' trabajos no son lo mismo que los procesos sin embargo. –

+0

trabajo se está ejecutando en segundo plano, cuando ejecuto ps -ef puedo ver algunos procesos ejecutando mis comandos que mi script bash contiene esos comandos, su ejecución 15 segundos a la vez, y procesa los IDS siempre cambiando cuando ejecuto ps -ef y yo no podría matar con kill process_id – soField

Respuesta

13

Usted debe ser capaz de encontrar su comando con un ps variante como:

ps -ef 
ps -fubob # if your job's user ID is bob. 

Entonces, una vez localizado, lo que debería ser un simple asunto usar kill para matar el proceso (permisos permitidos).

Si estamos hablando acerca de cómo deshacerse de los trabajos de la cola at (que no ejecutan todavía), puede utilizar atq enumerarlos y atrm para deshacerse de ellos.

+0

no está en cola está ejecutando trabajo cada 15 segundos a la vez – soField

+0

Si tiene un proceso que inicia otros trabajos (nuevos cada 15 segundos), primero tiene que eliminar el nivel superior, para que el comportamiento se detenga. Eso sigue usando ps para localizarlo y matarlo para terminarlo. – paxdiablo

+0

el trabajo de nivel superior también está cambiando y obtiene una nueva identificación cada 15seg – soField

8

Para eliminar un trabajo que aún no se ha ejecutado, necesita el comando atrm. Puede usar el comando atq para obtener su número en la lista at.

para matar a un trabajo que ya ha empezado a funcionar, tendrá que grep para ello usando:

ps -eaf | grep <command name> 

y luego utilice kill para detenerlo.

Una forma más rápida de hacer esto en la mayoría de los sistemas es:

pkill <command name> 
1

Primera

ps -ef 

para enumerar todos los procesos. Tenga en cuenta el número de proceso del que desea matar. Entonces

kill 1234 

eran reemplace 1234 con el número de proceso que desea.

Alternativamente, si está absolutamente seguro de que sólo hay un proceso con un nombre en particular, o si quiere matar a múltiples procesos que comparten el mismo nombre

killall processname 
+1

'killall' funciona en Linux, pero tenga en cuenta que en algunos sistemas, como Solaris, en realidad * mata todos los procesos *, que probablemente no sea lo que usted desea. –

+1

Guau, Solaris es DUMB. ¿Por qué querrías hacer eso alguna vez? Es como tener un alias para 'rm -rf /' – polvoazul

2

at -l a la lista puestos de trabajo, lo que da volver como esto:

age2%> at -l 
11  2014-10-21 10:11 a hoppent 
10  2014-10-19 13:28 a hoppent 

atrm 10 mata trabajo 10

O por lo que mi administrador de sistemas me dijo, y

Cuestiones relacionadas