Come posso uccidere un lavoro che è stato avviato in un'altra shell (finestra terminale o scheda)?


9

Se inizio un processo e lo sfondo in una finestra del terminale (diciamo ping google.com &), posso ucciderlo usando kill %1(supponendo che sia il lavoro 1).

Tuttavia, se apro un'altra finestra (o scheda) del terminale, il processo in background non è elencato sotto jobse non può essere ucciso direttamente usando kill.

È possibile interrompere questo processo da un'altra finestra o scheda del terminale?

Nota: sto usando Xfce Terminal Emulator 0.4.3 e bash (anche se se esiste una soluzione in un'altra shell comune ma non bash, sono aperto anche a quello)

Risposte:


10

Sì, tutto ciò che devi sapere è l'ID di processo (PID) del processo. Puoi trovarlo con il pscomando o il pidofcomando.

kill $(pidof ping)

Dovrebbe funzionare da qualsiasi altra shell. In caso contrario, puoi usare ps e grep per il ping.


6

Se si digita topin un'altra finestra del terminale, verrà elencato tutto il processo in esecuzione. Nota l'id del tuo processo joblì, quindi premi qper uscire da quella schermata. Quindi killil processo come al solito.


grazie per la risposta, ma topnon sembra mostrare tutti i processi specifici in esecuzione nella shell (ad esempio, non mostra ping). Mi dà un PID per l'emulatore di terminale, ma questo uccide l'emulatore di terminale come ci si aspetterebbe.
DQdlM l'

1
se digiti il top -U yourusernameterminale, elencherà solo il processo che stai utilizzando.
arthankamal,

eccezionale! +1 solo per quello! grazie
DQdlM il

mentre in cima, premi k poi 15 per un soft-kill (prova prima), 9 per un hard-kill.
Michael Durrant,

4

Di solito faccio qualcosa del genere:

ps aux | grep $PROCESS | grep -v grep | awk '{print $2 " " $11}'

Ad esempio, se $ PROCESS = "bash", questo è l'output della mia sessione corrente:

2683 bash
4481 bash
5695 bash

Quindi vorrei kill $PIDper qualunque /bin/bashcosa non volessi più correre.

ps, grepE (opzionalmente) awksono utili per la caccia al PID kill.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.