Sempre executa um script python específico quando o sistema é iniciado

2

Como posso ter um script python em particular sempre executado no meu sistema automaticamente quando meu sistema é iniciado até que eu desligue?

Deveria haver uma maneira simples pela qual eu posso colocar esse pequeno script em algum script de inicialização ou algo assim, que continua rodando sem que eu o chame.

Estou usando o Ubuntu 10.04, se isso faz diferença.

    
por zubinmehta 05.12.2010 / 11:57

3 respostas

6

coloque o script em /etc/init.d/? link

    
por 05.12.2010 / 12:02
1

Você pode (sob o Gnome) acessar as Preferências do Sistema > > > > e adicionar seu script aqui.

    
por 05.12.2010 / 12:15
1

Você menciona precisar dele para ser executado depois que um usuário efetua login, mas ele é executado até que o sistema seja encerrado. Isso é um pouco conflitante, porque geralmente as coisas que seriam executadas em uma sessão X parariam quando a sessão fosse encerrada. Além disso, se você quiser que ele seja executado em uma sessão que não seja do X-windows, você terá que ser muito cuidadoso sobre como ele reage com a execução várias vezes ou tenha cuidado para iniciá-lo apenas uma vez.

Dito isto, aqui estão algumas maneiras de executar scripts:

  • Em um usuário crontab use "@reboot" para a especificação de tempo, como: @reboot /path/to/script Isso fará com que seja executado como o usuário especificado e iniciará no tempo de inicialização do sistema e será executado até que ele morra ou o sistema seja desligue.
  • Acesse o aplicativo "Configurações" (XFCE: Aplicativos - > Configurações - > Configurações do Xfce 4, GNOME: Sistema - > Preferências, etc.) e modifique os aplicativos iniciados para sua sessão. Você pode adicionar um script para ser executado como parte da sessão. Isso será iniciado e executado enquanto sua sessão estiver em execução, mas não será reiniciado se o script morrer.
  • O script da sessão pode ser empacotado por um script que executa o programa Python em segundo plano, para que ele continue em execução após o logout da sessão, mas você precisa se certificar de que, se um usuário fizer logout e voltar, inicie várias cópias.
  • Se você quiser que ele seja executado a partir de sessões de shell via SSH ou algo semelhante, em vez de uma sessão do X Window, você pode colocá-lo no .profile (.bash_profile, .zprofile, etc). Mas você precisará contextualizá-lo como descrito acima e garantir que várias cópias não estejam em execução.
  • Você poderia simplesmente colocá-lo em /etc/rc.local e executá-lo como usuário (via "su"), mas isso vai começar no momento da inicialização, não no tempo de login. Pessoalmente, eu recomendo cront + @ reiniciar sobre isso.
  • Você pode criar um script upstart em "/ etc / init", o que fará com que ele inicie no momento da inicialização, mas você pode fazê-lo reiniciar o script se ele morrer por qualquer motivo. Essa é a melhor opção se você precisar garantir que continue em execução.
por 05.12.2010 / 13:49