jobs -l
Lists process IDs of the active jobs
Eu abri uma sessão de terminal e iniciei alguns processos com &
. Quando tentei fechar a janela do terminal, avisou-me que ainda havia trabalhos em segundo plano.
Eu posso ver os processos em execução com ps
, mas como posso saber quais foram iniciados nesta sessão?
Se você quiser encontrar todos os processos em segundo plano iniciados a partir da sessão bash
atual, poderá usar o jobs
incorporado em bash
.
De help jobs
:
jobs: jobs [-lnprs] [jobspec ...] or jobs -x command [args] Display status of jobs. Lists the active jobs. JOBSPEC restricts output to that job. Without options, the status of all active jobs is displayed.
Por outro lado, se você quiser encontrar todos os processos que foram iniciados a partir dessa bash
session, use a variável $$
de bash
, que fornecerá o PID da instância atual bash
. Em seguida, você pode analisar a saída do comando ps -ef
para localizar todos os processos cujo ID do processo pai (PPID) é $$
:
ps -ef | grep -P "^[^ ]+\s+[^ ]+\s+$$\s"
Execute ps -auxf
para ver quais shells os processos em segundo plano são filhos de.