Execute o script Python na inicialização do sistema operacional

5

Esta pode ser uma pergunta que foi repetida, mas não consigo encontrar uma maneira correta de fazê-lo.

Qual é o meu caso? - > Eu quero executar um script Python.

O que o script python faz em resumo? - > O script python é executado para configurar uma rede privada virtual.

Como faço para iniciá-lo manualmente no momento? - > eu uso ./file.py start (isso funciona)

o que não está funcionando? - > quando tento iniciar no início (inicialização), ele não faz nada. Estou usando o cron job que não está funcionando, e eu não quero usá-lo, eu quero usar o /etc/init.d/.

Este é meu arquivo.conf em /etc/init/xxx.conf

description "file start script"
author "sijan <[email protected]>"



exec python file.py start
exec sleep 10
exec ifconfig ip0 11.0.2.251

exec ip='ifconfig ip0 | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}''

exec echo $ip >>/tmp/ip.log

Eu adicionei o arquivo python em /etc/init.d/file.py

Eu possivelmente não estou seguindo o procedimento correto para fazer isso desde que eu sou muito novo no nível do sistema, no entanto, qualquer idéia sobre como proceder é muito apreciada. Eu estou muito ansioso para consertar isso e aprender

    
por Sijan Shrestha 26.08.2016 / 09:37

3 respostas

10

Coloque o script em /etc/rc.local . Scripts são executados como root quando o sistema é iniciado. Também é adequado para Raspberry Pi, como você especificou nos comentários.

No seu caso, você quer executá-lo como python /path/to/script.py &

Aqui está o meu arquivo rc.local de amostra, eu uso a mesma abordagem para executar scripts de monitoramento de bateria e temperatura

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/home/xieerqi/bin/batmon.sh &
/home/xieerqi/bin/preventShutdown.sh &
/home/xieerqi/bin/sh/temperature.sh  &

Informações adicionais sobre /etc/rc.local

    
por Sergiy Kolodyazhnyy 26.08.2016 / 12:43
0

Parece que você precisa encerrar a cotação da string após o endereço de e-mail, caso contrário, o outro código será considerado parte da string do autor.

    
por Robert Newstrand 26.08.2016 / 16:14
0

Você também pode fazer isso com o cron adicionando o seguinte para o seu crontab :

@reboot username python /python/to/file.py

Você pode ou não precisar do nome de usuário .

[EDITAR]

Existem duas ressalvas para essa abordagem:

  1. o daemon cron deve estar em execução (que é o caso em circunstâncias normais);
  2. o script ou o arquivo crontab deve incluir as variáveis de ambiente (se houver) que serão necessárias.
por James Bradbury 16.06.2017 / 14:59