如何将 ipython 笔记本作为服务运行

如何将 ipython 笔记本作为服务运行

我的 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 很陌生,所以我可能是错的:)

相关内容