在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页面为新手用户作为指导,并以正常方式启用它。
上面的步骤很精彩,我在这里的答案中做了一些详细的步骤:
我的环境如下
- Ubuntu在17.10
- 我在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