Vida do programa em segundo plano

Vida do programa em segundo plano

Se você iniciar um programa em segundo plano no terminal com a opção &. Ele irá parar quando você fechar o terminal?

Responder1

Ele para quando vocêdesligaro terminal. Os terminais não têm necessariamente o conceito de seremfechado.

Com um terminalprograma emulador, não há nada real sendo desligado, mas fechar o programa emulador aciona um desligamento do terminal emulado. (Mais estritamente: fechar o lado mestre do dispositivo pseudo-terminal se qualifica como desligamento do terminal no lado escravo.) Nem todos os programas emuladores têm a noção de serem fechados. Aquele que está embutido no kernel do sistema operacional, fornecendo as informações do kernelterminais virtuais, não pode ser "fechado", por exemplo.

Com um terminal real, há uma porta serial com uma linha de detecção de portadora e um desligamento real do modem que pode ocorrer se o usuário discado no terminal remoto desligar a conexão telefônica.

Tudo isso remonta à época dos sistemas de compartilhamento de tempo com terminais remotos onde os usuários eram cobrados pelo uso. Se alguém perdesse acidentalmente a conexão telefônica, certamente não desejaria ser cobrado pelos programas ainda em execução, potencialmente até a próxima reinicialização do sistema. Por outro lado, os administradores de sistema e outros usuários não queriam programas ainda em execução e conectados a terminais agora supostamente livres que poderiam ser atribuídos a outros usuários de discagem.

Muita coisa mudou desde então. O controle de trabalho BSD, para começar, inspirou mudanças na distribuição do sinal de desligamento e a introdução da noção de umlíder da sessãoque está encarregado dos trabalhos dentro de uma sessão de login e cuja morte é considerada um golpe esmagador para esses trabalhos. Ganhamos login remoto pela Internet e a ideia de umSessão de login da GUI. E os programas emuladores de terminal tornaram-se tão predominantes que as pessoas os confundem com os terminais que são.emulando.

Mas permanece a ideia fundamental de que os processos do usuário são normalmente encerrados - de alguma forma, mesmo que através da mediação de um líder de sessão - quando sua sessão terminal cessa.

Responder2

VisitaExecutando programas em segundo plano no terminalouA maneira mais eficiente de iniciar e separar um programa do terminal?

Se você iniciar um programa em segundo plano no terminal com a opção &. Ele irá parar quando você fechar o terminal?

Acho que fechar gnome-terminalclicando no botão Fechar pode causar a interrupção/eliminação desse programa.Masse você fechar o terminal porexitcomando do que o programa não irá fechar/parar/matar.

Responder3

Sim, isso vai parar. Para evitar que o programa seja interrompido, use nohup.

Por exemplo, nohup firefox > /dev/null 2>&1 &permitirá a execução do Firefox em segundo plano sem fechar e evitará a exibição de erros/saída no console

informação relacionada