Jobs são um conceito de shell. Um job é um subprocesso de um shell que o shell rastreia. Uma instância de shell em execução em um terminal não sabe nada sobre as tarefas de outra instância de shell. Quando você executa jobs
no shell que está sendo executado na segunda guia do seu emulador de terminal, isso lista os jobs no shell that . O shell em execução na segunda guia não sabe nada sobre as tarefas em execução na primeira guia.
Jobs são processos, então você pode manipulá-los como tal. Você precisará identificar o ID do processo do trabalho. IDs de processo são um conceito de kernel; um ID de processo identifica exclusivamente um processo em uma determinada máquina em um determinado momento. Você pode executar ps -t pts/42
para listar os processos em execução no terminal /dev/pts/42
; execute o comando tty
em um shell para ver em qual terminal está sendo executado. (Isso é terminal, não software de emulador de terminal. Guias em um emulador de terminal multi-tab são terminais não relacionados.)
Depois de identificar o ID do processo em que você está interessado, envie um sinal com o comando kill
. O sinal SIGCONT diz ao processo para retomar a execução, caso tenha sido suspenso (se não foi suspenso, o sinal não faz nada). O processo será executado em segundo plano; Se você quiser trazê-lo para o primeiro plano, você precisa fazer isso com o comando fg
no shell que está sendo executado naquele terminal (porque você precisa fazer com que o shell pare de estar em primeiro plano).
¹ Você pode precisar que empregos são grupos de processos, mas isso é irrelevante aqui.