我安装了Fedora 14的AWS AMI。我没有root访问权限,但我可以使用sudo
执行任何操作。我有一个我希望在机器启动时运行的脚本 - myScript.sh
。
通过调用sudo /dir/dir/myScript.sh start
来调用此脚本。它还支持我经常使用的命令stop
和status
。
在启动时运行此类脚本的理想方法是什么?
答案 0 :(得分:3)
我认为最简单,最通用的方法(虽然不如@sarnold的建议灵活)是将/dir/dir/myScript.sh start
添加到/etc/rc.local。在所有其他启动脚本运行后,脚本将在启动时运行。
答案 1 :(得分:1)
您可以轻松获得一些机制:
两种最常见的机制:
添加upstart job definition个文件。这看起来很简单,但确实可以将您提供的脚本分发到少数新版本(Ubuntu,Google的Chrome发行版,Fedora,可能是RHEL?)。
添加sysv-init initscript。 init-scripts更难编写,但在为系统管理员提供更多命令行参数方面具有更大的灵活性。几乎所有地方都支持它们,即使是已经将其部分或大部分原始内容转换为Upstart工作的发行版。
我不经常看到它,它更像是系统管理员的选择,而不是软件开发人员的选择,但您也可以使用系统Vixie cron(8)
工具来启动程序。
您可以在/etc/cron.d/*
中向系统crontab添加条目; Vixie cron支持@reboot
说明符,非常适合此任务。
或者,您可以在自己的个人crontab(5)
文件中添加条目;再次,Vixie cron的@reboot
也适用于用户,但您无法从sudo(8)
运行交互式 crontab(5)
。如果您想使用自己的个人NOPASSWD
文件,请参阅sudoers(5)
中的crontab(5)
文档,但要注意,机器上的其他管理员可能会讨厌这个想法。