在Ubuntu的后台运行IPython笔记本服务器,使用;服务“-样式命令

在Ubuntu的后台运行IPython笔记本服务器,使用;服务“-样式命令,ubuntu,ipython,daemon,background-process,ipython-notebook,Ubuntu,Ipython,Daemon,Background Process,Ipython Notebook,我已经在我的机器上设置了IPython笔记本(在virtualenv中)。我已经建立了一个适合我需要的配置文件(名为myserver)。现在,我通过执行以下命令启动该服务器: cd path/to/folder/containing/virtualenv source virtualenvfolder/bin/activate ipython notebook --profile=myserver 我想在后台运行同样的过程,我想用我在Ubuntu安装中管理其他东西的方式来管理它……使用sudo

我已经在我的机器上设置了IPython笔记本(在virtualenv中)。我已经建立了一个适合我需要的配置文件(名为
myserver
)。现在,我通过执行以下命令启动该服务器:

cd path/to/folder/containing/virtualenv
source virtualenvfolder/bin/activate
ipython notebook --profile=myserver
我想在后台运行同样的过程,我想用我在Ubuntu安装中管理其他东西的方式来管理它……使用
sudo service ngninx start
sudo service uwsgi restart
sudo service lightdm stop
等命令。也就是说,我希望能够键入
sudo服务myipythonserver start | stop | restart
,并使其以预期方式运行

四个问题

  • 调用
    sudo service something action
    时使用的框架的名称是什么。那是主管吗?还有别的吗
  • 不管这个框架叫什么,我如何创建一个新的“东西”让它管理?哪个用户拥有以这种方式启动的进程,您如何管理后台进程的文件权限(etc)
  • 一旦我创建了新的“命令”(假设它现在可以输入
    sudo服务myipythonserver start | stop | restart
    ),我如何设置它,以便在系统启动时自动启动进程
  • 有没有办法控制这些后台进程之一所消耗的系统资源量?例如,如果我想限制我的IPython服务器使用不超过3gb的RAM,这是可能的吗?不超过CPU的50%

  • 我能够使用upstart获得这项工作,upstart包含在Ubuntu中。要使用upstart创建作业,请在
    /etc/init
    中创建一个
    .conf
    文件。不带.conf的文件名是服务的名称。以下是我创建的文件:

    exec sudo /usr/local/bin/ipython notebook --notebook-dir=/your/notebook/path   
    start on filesystem and net-device-up IFACE!=lo 
    
    第一行包括ipython二进制文件的路径,
    --notebook dir
    包含存储我的笔记本的路径。更详细的配置可以使用。Upstart系统文件可以包括,这可以激活您的virtualenv


    当有可用的文件系统和网络接口时,第二行从iPython开始。可以使用
    sudo start ipython
    sudo stop ipython
    手动启动和停止服务

    我不是linux专家,但我认为如果你把你的脚本变成一个新的工作(ubuntu正在从system init服务中移出“/etc/init.d/like),你可能会过得更好。这看起来是一个很好的开始。对于完整的文档来说。你的第一个链接被破坏了。还有其他建议吗?