2009-12-01 10 views
10

ho creato un posto di lavoro con il comando at su Solaris 10.List e uccidere a posti di lavoro su UNIX

Si sta lavorando ora, ma voglio ucciderlo, ma non so come posso trovare il numero di posti di lavoro e come uccidere quel lavoro o processo.

+2

Prima di 'uomo ps'. Leggilo. Quindi aggiorna la domanda in base a ciò che leggi. –

+1

S.Lotto: i lavori 'at' non sono la stessa cosa dei processi. Il lavoro –

+0

è in esecuzione in background, quando eseguo ps -ef posso vedere alcuni processi che eseguono i miei comandi che il mio script di bash contiene quei comandi, la sua esecuzione 15 secondi in una volta e gli id ​​proceses che cambiano sempre quando eseguo ps -ef e i impossibile uccidere con kill process_id – soField

risposta

13

Si dovrebbe essere in grado di trovare il comando con un ps variante, come:

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

Poi, una volta posizionato, dovrebbe essere una questione semplice da usare kill per uccidere il processo (autorizzazioni permettendo).

Se si sta parlando di sbarazzarsi di lavori nella coda at (che non sono ancora in esecuzione), è possibile utilizzare atq elencarli e atrm a sbarazzarsi di loro.

+0

non è in coda è in esecuzione lavoro ogni 15 secondi contemporaneamente – soField

+0

Se si ha un processo che sta dando il via ad altri lavori (nuovi ogni 15 secondi), è necessario prima uccidere quello di primo livello, in modo che il comportamento si interrompa. Sta ancora usando ps per localizzarlo e uccidere per terminarlo. – paxdiablo

+0

Anche il lavoro di primo livello sta cambiando, e ottenere un nuovo id ogni 15 secondi – soField

8

Per eliminare un lavoro non ancora eseguito, è necessario il comando atrm. È possibile utilizzare il comando atq per ottenere il suo numero nell'elenco at.

di uccidere un lavoro che ha già iniziato a correre, avrete bisogno di grep per utilizzando:

ps -eaf | grep <command name> 

e quindi utilizzare kill per fermarlo.

Un modo più veloce per farlo sulla maggior parte dei sistemi è:

pkill <command name> 
1

Prima

ps -ef 

per elencare tutti i processi. Nota il numero del processo di quello che vuoi uccidere. Quindi

kill 1234 

se si sostituisce 1234 con il numero di processo che si desidera.

In alternativa, se si è assolutamente certi che non v'è un solo processo con un particolare nome, o se si vuole uccidere i processi multipli che condividono lo stesso nome

killall processname 
+1

'killall' funziona su Linux, ma si noti che su alcuni sistemi, come Solaris, in realtà * uccide tutti i processi *, che probabilmente non è quello che si desidera. –

+1

Wow, Solaris è DUMB. Perché vorresti mai farlo? È come avere un alias per 'rm -rf /' – polvoazul

2

at -l per elencare i lavori, che dà tornare come questo:

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

atrm 10 uccide lavoro 10

O così il mio amministratore di sistema mi ha detto, ed è

Problemi correlati