我的 ipython 笔记本运行正常,但我想将其作为服务运行(启动、停止、重新启动),这样我就不必每次使用 SSH 登录时手动启动它。
我怎样才能做到这一点?
答案1
我建议使用主管。我在用着jupyterhub通过supervisord。
Supervisord 会生成您的程序作为它的子程序,并且您可以将其配置为在它死掉时重新启动它,因此您将始终保持该服务。它有一些配置选项,但非常简单。您甚至可以拥有一个 http 接口,您可以从中停止或启动它保留的程序。
一个基本的定义,在主管配置文件,您的程序将如下所示。
[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 来做这件事,这就是我想到的。
创建文件:/etc/systemd/system/ipython.service。 文件内容:
[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
我没有检查 ipython notebbok 的所有参数,但应该有一个可以让你指定你的家。如果不是参数,那么您肯定可以在 ptofile 中找到它。您还应该添加这一点。
然后你必须启用该服务:
systemctl enable /etc/systemd/system/ipython.service
并启动它:
systemctl start ipython.service
我不太确定,但看到它是 WantedBy multi-user.target,你应该在系统重新启动后将其启动,但我对 systemd 很陌生,所以我可能是错的:)