在17.04上运行upstart脚本?

运行17.04(Zesty Zapus)并尝试启动一个新手脚本,但我注意到它没有被执行。 然后我注意到即使在/etc/init有很多脚本,upstart也不会被列为已安装的包。 显然他们没有运行,因为在例如cron中引入拼写错误并不影响其启动。

我该如何运行upstart脚本? 安装新手或通过某个systemd层运行它? 当/etc/init中的其他脚本突然运行时,安装upstart会破坏某些东西吗?

显然upstart不包含在服务器版本OOTB中,即使/etc/init有脚本(有点令人困惑)。

我将upstart脚本重新编写为systemd单元文件,主要使用systemd上的Ubuntu wiki页面为新手用户作为指导,并以正常方式启用它。

上面的步骤很精彩,我在这里的答案中做了一些详细的步骤:

我的环境如下

  1. Ubuntu在17.10
  2. 我在Gunicorn 19.x服务器上有一个python应用程序,我需要启动此应用程序作为服务。

首先,您需要编写一个foo.service文件。

 [Unit] Description=FooServer [Service] Restart=on-failure WorkingDirectory=/path/to/your/working/directory/where the foo lives ExecStart=/what/process/will call foo eg: in my case I used gunicorn app:app ExecReload=/bin/kill -HUP $MAINPID KillSignal=SIGINT [Install] WantedBy=multi-user.target 

“=”符号左侧的每个单词的含义及其对应于(较早的)新贵的链接都在链接https://wiki.ubuntu.com/SystemdForUpstartUsers中

文件准备好后,假设您将其命名为’foo.service’(.service扩展很重要)

您需要将文件放在/lib/systemd/system

之后,您需要通过调用启用该服务

 systemctl enable foo 

这将提示您输入root密码,因为它将在一些基于root访问权限的文件夹中创建符号链接,其中所有服务聚会。

如果你到达这里没有任何麻烦,你很好。 因此创建了您的服务。 通过电话启动它

 sudo service foo start 

systemctl status foo查看状态sudo service foo stop停止服务

我今天整天都在Gunicorn页面上,尝试了所有各种选项,但没有一个能够工作,最后这个工作正常。 非常感谢@Zanna和@Nicklas Karlsson