Eu tenho um programa em Python e uma configuração da web nginx / uwsgi / django. Eu quero que o programa comece com o sistema, assim como o servidor web.
Aqui está o meu /etc/rc.local
:
crawler_dir=/home/mohammed/git/crawler
log_dir=$crawler_dir/logs
client_rundir=$crawler_dir/rundirs/client
server_rundir=$crawler_dir/rundirs/server
site_dir=$crawler_dir/whoissite
env_dir=/home/mohammed/pyenvs/whoisenv
$env_dir/bin/python $env_dir/bin/twistd --logfile=$log_dir/twistd_server.log --pidfile=$server_rundir/twistd.pid$
$env_dir/bin/python $env_dir/bin/twistd --logfile=$log_dir/twistd_client.log --pidfile=$client_rundir/twistd.pid client -n Pikatchu
$env_dir/bin/uwsgi $site_dir/uwsgi.ini
o uwsgi.ini
:
[uwsgi]
chdir = /home/mohammed/git/crawler
socket = whoissite.sock
module = whoissite.wsgi
daemonize = ../logs/uwsgi.log
chmod-socket=666
Portanto, eu tenho um virtualenv em Python e me certifico de executar executáveis a partir dele, para que eles não sejam executados com o Python padrão, o que não é feito corretamente.
O truque é que eu posso executar esses comandos manualmente muito bem no terminal, mas não na inicialização.
Os arquivos de log do twistd e do uwsgi não são criados, então não sei o que deu errado. Como posso fazer isso funcionar?
Obrigado