Executando trabalhos contínuos remotamente

Executando trabalhos contínuos remotamente

Sou novo no Linux e provavelmente estou fazendo uma pergunta bastante básica. Como executo um programa contínuo no Linux?

Basicamente, tenho um programa que verifica continuamente o conteúdo de um site. Este programa estará em execução por vários dias. Não tenho privilégios administrativos no computador em que desejo executar este programa e também não tenho acesso exclusivo a este computador, o que significa que outros usuários podem fazer logon fisicamente. Além disso, salvo algum desastre incalculável, o computador estará funcionando durante toda a duração do meu programa.

Eu sei que posso usar SSH na máquina e executar o programa. No entanto, isso não é desejável, pois eu precisaria de uma segunda máquina para fazer isso (o que vai contra o objetivo do que estou fazendo), sem mencionar problemas de tempo limite.

Existe uma maneira de executar meu programa no computador remotamente sem estabelecer algum tipo de conexão depois de iniciá-lo?

Responder1

Se for algo que precisa acontecer em intervalos regulares, use cron(por exemplo, você precisa verificar o site uma vez a cada hora, ou uma vez por dia, ou com mais ou menos frequência do que isso, mas ainda não definido arbitrariamente).

No entanto... Você pode querer executar um comando mais tarde, em vez deagora mesmo, para isso você deseja usar o atdaemon, que permite executar um comando uma vez em uma data/hora posterior (como se fossem 5 horas e você quisesse ir para casa, mas tivesse um processo de 4 horas que seria melhor executado no meio da noite e não é recorrente).

Eu direi nohupque foram mencionados, use screense quiser executá-lo agora, mas não quiser se reconectar a essa sessão para verificá-la mais tarde. / são para verificar isso mais tarde.tmuxnohupscreentmux

Responder2

Você precisa fazer duas coisas:

  1. Execute o comando com nohup. Isso impede que a máquina remota termine o comando quando você desconecta
  2. Execute o comando em segundo plano, anexando &. Isso não é estritamente necessário, mas retornará você a um shell em vez de bloquear o comando para que você possa desconectar normalmente ou fazer outras coisas

Então, para o comando command:

nohup command &

Responder3

nohupé definitivamente o caminho certo a seguir se você puder executar seu programa sem interagir com ele: se ele gravar todas as suas saídas e mensagens de erro em um arquivo que você possa acessar mais tarde, por exemplo. verifique o nohup.outarquivo para ver quaisquer mensagens de erro que o programa deixou durante a execução (obrigado pela correção, Michael!)

Se você precisar interagir com o programa enquanto ele está em execução,Tela GNUpode ser a melhor maneira de fazer isso. Ele permite criar um terminal virtual que permanece em execução mesmo após o logout, junto com todos os programas iniciados nele, desde que ninguém desligue o computador.Aqui está um tutorialEu descobri ao usá-lo.

informação relacionada