嗨,我刚刚发现了 ubuntu upstart(etc/init/* 脚本)。我想用它来运行特定的应用程序。这个应用程序是通过命令行运行的,但是有一个参数来启动应用程序的一个实例,另一个参数来停止它(比如说“开始”和“停止”)有没有办法使用暴发户?
嗨,我刚刚发现了 ubuntu upstart(etc/init/* 脚本)。我想用它来运行特定的应用程序。这个应用程序是通过命令行运行的,但是有一个参数来启动应用程序的一个实例,另一个参数来停止它(比如说“开始”和“停止”)有没有办法使用暴发户?
它应该像创建文件一样简单
/etc/init/myjob.conf
:然后你应该能够
sudo start myjob
开始和sudo stop myjob
停止。有关更多信息,请参阅http://upstart.ubuntu.com 。
如果您只想在启动时启动/停止服务..然后将脚本放入 /etc/init.d 并运行
或者如果那抱怨
两者都会将其添加到启动/关闭中。
请注意,这意味着它将以 root 身份运行。所以您可能需要确保脚本将用户切换到您的用户或您希望该程序运行的另一个用户。
Upstart 旨在尽可能替换此类脚本。这样做的动机是更快的启动和更清晰的信息编码,以了解何时启动/停止服务。它只需要读取 /etc/init 的内容即可启动,从而实现更快的启动,这在您将 ureadahead 添加到启动过程时特别有用,因为 ureadahead 必须缓存的随机小脚本文件越少,越多它可以将时间花在重要的事情上,例如启动系统所需的库和程序。
我敢打赌,您正在运行的脚本会做一些事情来设置环境,然后以守护程序模式运行程序。您的新贵工作应该寻求替换脚本的逻辑,而不仅仅是运行脚本。
我猜你会希望它在不同的事件上启动或停止,所以设置两个不同的工作会更容易。
如果相同的事件切换您的应用程序,那么您可以使用脚本设置作业,检查它是否正在运行,从而启动或停止您的应用程序。