Como executar o ipython notebook como um serviço

0

Eu tenho o ipython notebook funcionando corretamente, mas gostaria de executá-lo como um serviço (iniciar, parar, reiniciar) para que eu não precise iniciá-lo manualmente toda vez que eu fizer login com o SSH.

Como posso fazer isso?

    
por Cedric H. 16.09.2015 / 11:50

1 resposta

1

Eu sugiro usar o supervisord . Estou usando o jupyterhub por meio do supervisord.

A Supervisord gera seu programa como ele é filho, e você pode configurá-lo para reiniciá-lo se ele morrer, assim você sempre terá o serviço funcionando. Tem algumas opções de configuração, mas é bastante simples. Você pode até ter uma interface http de onde você pode parar ou iniciar os programas que mantém.

Uma definição básica, em supervisord.conf , para o seu programa se pareceria com o seguinte.

[program:ipython_notebook]
command=/usr/local/bin/ipython notebook --ip 0.0.0.0 --port 8080
stderr_logfile = /var/log/supervisord/ipython_notebook-stderr.log
stdout_logfile = /var/log/supervisord/ipython_notebook-stdout.log

Systemd

Eu tentei fazer isso com o systemd também, e é isso que eu criei.

Crie o arquivo: /etc/systemd/system/ipython.service. O conteúdo do arquivo:

[Unit]
Description=IPython
After=network.target

[Service]
TimeoutStartSec=0
ExecStart=/usr/local/bin/ipython notebook --ip 0.0.0.0 --port 8080

[Install]
WantedBy=multi-user.target

Eu não verifiquei todos os parâmetros para o notebbok ipython, mas deve haver um que permita especificar sua casa. Se não é um parâmetro que certamente você poderia encontrá-lo no ptofile. Você também deve adicionar isso.

Então você precisa ativar o serviço:

systemctl enable /etc/systemd/system/ipython.service

e comece:

systemctl start ipython.service

Eu não tenho muita certeza, mas vendo que é o WantedBy multi-user.target, você deve ter um reinício do sistema, mas eu sou muito novo no systemd então eu posso estar errado :)

    
por 16.09.2015 / 12:18

Tags