O que é um processo em segundo plano?

3

Sempre ouvi falar sobre os processos em segundo plano (mas não sobre o plano de fundo da área de trabalho). Mas eu não entendo o que eles realmente são. Como exemplo, por favor, veja a resposta deste link o que é diferença técnica entre daemon, serviço e processo? Eu cito aqui:

  

Daemons - Daemon ... Eles são os processos que são executados no    plano de fundo e não são interativos. Eles não têm terminal de controle ...

Qual é o seu uso? Também há algum comando relacionado para mostrar processos sendo executados em segundo plano?

    
por Mohammad Reza Rezwani 15.04.2014 / 12:30

4 respostas

8

A definição simples é um processo que não está conectado a um terminal ou display ativo ... Mas existem várias maneiras de conseguir isso:

  • A maioria do que consideramos processos de segundo plano são serviços do sistema. Eles geralmente são iniciados por um daemon de inicialização de alto nível (Upstart, Systemd, etc) e geralmente permanecem como filhos desse daemon. Ele terá sua saída solicitada pelo daemon de inicialização para fins de registro.

  • Um processo desassociado é onde você altera o pai do processo para PID = 0, /sbin/init . Isto significa que mesmo que você feche seu terminal ou sessão X, o processo permanecerá (contanto que não dependa de outras coisas - como uma sessão X). Existem muitas maneiras de realizar isso . A menos que redirecionado de outra forma, nada acontece com a saída de processos desassociados depois que o terminal morre.

    É importante notar que dissociação não significa necessariamente background , mas se o terminal atual morrer, o processo é automaticamente considerado "em segundo plano" porque não tem como gerenciar sua IO. / p>

  • Em seguida, existem shells virtuais que podem ser executados em segundo plano e "manter" seus processos ativos abertos para você. screen é provavelmente o melhor exemplo disso. Ele permite desconectar e reconectar várias sessões de terminal, o que é útil se você precisa preservar um fluxo de trabalho de terminal em um servidor (ou executar algo com saída indefinidamente, como irssi , um cliente de IRC).

  • Por último, existe a definição da shell. Muitas shells (interfaces de linha de comando como Bash) permitem que você faça um processo em segundo plano. Isso significa simplesmente que os arquivos IO STDOUT, STDIN e STDERR estão desconectados do terminal atual. O processo continua executando em seu próprio segmento e você recebe outro aviso. O processo não é automaticamente desassociado, portanto, se a sessão de Bash for fechada, todas as suas tarefas em segundo plano serão encerradas. Aqui está um exemplo simples com o Bash .

por Oli 15.04.2014 / 13:04
6

Segundo plano significa que um processo está sendo executado em seu sistema que não é visível na área de trabalho (ou seja, ele não precisa ter um aplicativo na área de trabalho aberto).

O comando para visualizar TODOS os processos é chamado 'ps'. Exemplo com ps -ef :

 ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 apr10 ?        00:00:02 /sbin/init
root         2     0  0 apr10 ?        00:00:00 [kthreadd]
root         3     2  0 apr10 ?        00:00:07 [ksoftirqd/0]
root         5     2  0 apr10 ?        00:00:00 [kworker/0:0H]
root         7     2  0 apr10 ?        00:00:33 [rcu_sched]
root         8     2  0 apr10 ?        00:00:00 [rcu_bh]
root         9     2  0 apr10 ?        00:00:01 [migration/0]
root        10     2  0 apr10 ?        00:00:02 [watchdog/0]
root        11     2  0 apr10 ?        00:00:02 [watchdog/1]
root        12     2  0 apr10 ?        00:00:01 [migration/1]
root        13     2  0 apr10 ?        00:00:07 [ksoftirqd/1]
root        15     2  0 apr10 ?        00:00:00 [kworker/1:0H]

É muito mais tempo. Se você quiser encontrar o cromo, por exemplo, você pode fazer ps -ef | grep chromium assim:

ps -ef |grep chrom
xxxxxx    2874  1207  0 apr10 ?        00:54:28 /usr/lib/chromium-browser/chromium-browser --enable-pinch
xxxxxx    2880  2874  0 apr10 ?        00:00:04 /usr/lib/chromium-browser/chromium-browser --enable-pinch
xxxxxx    2881  2874  0 apr10 ?        00:00:00 /usr/lib/chromium-browser/chrome-sandbox /usr/lib/chromium-browser/chromium-browser --type=zygote
xxxxxx    2882  2881  0 apr10 ?        00:00:00 chromium-browser --type=zygote                          
xxxxxx    2888  2882  0 apr10 ?        00:00:00 chromium-browser --type=zygote                          

Programas populares para visualizar processos são top e htop .

Você pode usar essa lista para matar um processo da linha de comando.

O monitor do sistema pode ser usado para ver tarefas em segundo plano:

    
por Rinzwind 15.04.2014 / 12:35
2

Um processo em segundo plano é um processo de computador que é executado "nos bastidores" (ou seja, em segundo plano) e sem intervenção do usuário. Tarefas típicas para esses processos incluem registro, monitoramento do sistema, agendamento e notificação do usuário.

A partir de uma linha de comando, um processo em segundo plano pode ser iniciado usando o operador & amp; . O utilitário bg pode retomar um trabalho suspenso, executando-o em segundo plano. O uso do utilitário fg associará um processo em segundo plano ao terminal pai, colocando-o em primeiro plano. O utilitário jobs listará todos os processos associados ao terminal atual e poderá ser usado para trazer processos de segundo plano para o primeiro plano.

  • Exemplo:

    Para enviar um processo em execução (em execução em um terminal) para o plano de fundo, apenas pressione Ctrl + z e chame o comando bg :

    sylvain@sylvain-ThinkPad-T430s:~$ sleep 50
    ^Z
    [1]+  Stopped                 sleep 50
    sylvain@sylvain-ThinkPad-T430s:~$ bg
    [1]+ sleep 50 &
    

    Agora você pode digitar outros comandos no seu terminal enquanto o comando sleep estiver em execução.

Fonte

    
por Sylvain Pineau 15.04.2014 / 12:53
1

O processo em segundo plano é apenas um processo que é executado independentemente no plano de fundo e não afeta o processo em primeiro plano.

Você pode consultar: link para obter mais detalhes.

    
por Prakash V Holkar 16.04.2014 / 09:07