问题描述
我有一个脚本,我想在我的 Ubuntu Server 11.04 无头机器上作为服务运行。也就是说,我希望在 /etc/init.d/下拥有正确的文件,并能够通过 service
命令对其进行控制。
有没有可用的指南可以告诉我如何做到这一点?
最佳思路
除非您使用的是 15.04 或任何更高版本(使用 systemd
),否则如果您将脚本转换为 Upstart 作业,而不是遵循您在 /etc/init.d/
中找到的示例(它们是系统 V-style 初始化脚本, Ubuntu 和其他发行版正在远离)。
Upstart Cookbook 包含大量关于 Upstart 工作如何工作的信息。尽管我不会将其描述为 HOWTO,但如果您将那里的信息与查看 /etc/init/
中的 Ubuntu Upstart 库存作业结合起来,您将开始了解情况。
我建议从 Cookbook 的第 4 和 5 部分开始,“Concepts and Terminology” 和 “Configuration”
次佳思路
下面是一个非常简单的例子,如何创建一个 upstart 脚本:\n https://wiki.frugalware.org/index.php/Upstart_Job_HOWTO
更新:上面的链接坏了。下面是一个脚本示例:
description "My startup service"
author "You or someone else"
version "3.14"
pre-start script
echo 'Starting my service ...'
end script
start on net-device-up
stop on runlevel [!2345]
console output
respawn
exec /path/to/your/custom/script
根据需要进行调整。
您应该将脚本放在 /etc/init/yourfilename.conf
然后重新加载配置:
sudo initctl reload-configuration
如果一切正常,您应该能够以以下方式启动它:
sudo start yourfilename