Linux在启动时运行脚本以及在关闭时运行另一个脚本的最简单方法是什么?
答案 0 :(得分:6)
请参阅介绍性文章http://www.linux.com/feature/114107
大多数发行版都有自己的前端来管理运行级别。不幸的是,没有标准工具。
例如,我使用OpenSUSE,它可以通过managed by YaST。
答案 1 :(得分:4)
在Debian或Ubuntu中,复制/etc/init.d/skeleton,一个用于启动/停止守护进程的示例脚本,并根据自己的喜好对其进行编辑,并使其可执行:
cp /etc/init.d/skeleton /etc/init.d/mythingy
pico /etc/init.d/mythingy
chmod 755 /etc/init.d/mythingy
这应该为您提供启动和停止给定程序/脚本的方法。您可能希望测试脚本以确保它按预期工作:
/etc/init.d/mythingy start
/etc/init.d/mythingy stop
执行此操作后,使用update-rcd命令使其在启动/关闭时运行:
update-rcd mythingy defaults
除非你知道自己在做什么,否则使用默认设置就完全没问题了。这应该就是你需要做的一切!
您可能会发现这些资源很有用:
答案 2 :(得分:2)
在/etc/init.d中创建脚本并运行chkconfig myscript on
。有关示例,请参阅/etc/init.d中的其他脚本。
正如其他人所指出的那样,这是基于Red Hat的发行版。
答案 3 :(得分:1)
Ubuntu有/etc/rc.local,你可以编辑一个脚本来调用你在启动时需要做的任何事情。
Gentoo有/etc/conf.d/local.start和/etc/conf.d/local.stop
在Redhat / fedora下必须是类似的东西。
答案 4 :(得分:0)
这是非常依赖于分布式的,并且也会因为运行级别之类的内容而异,并且在启动期间您希望脚本运行的确切时间。
但是在/ etc中探索可能是一个很好的方法来弄清楚如何为你的特定机器做这件事。
答案 5 :(得分:0)
使脚本在启动时运行的最简单方法是在root的crontab中添加@reboot条目。 (我不知道任何@shutdown规则):
@reboot /path/to/script <arguments>
对于debian系统(包含ubuntu),“正确”的方法是根据该目录中的框架文件在/etc/init.d中创建一个init脚本。使用update-rc.d使其处于活动状态(阅读该用户使用)。
答案 6 :(得分:0)
如果您的应用程序不支持daemonizing,pid文件处理等,您可以使用命令start-stop-daemon在init脚本中为您提供这些功能。
答案 7 :(得分:0)
由于您尚未指定哪个发行版,所以您可以依赖的是LSB关于init scripts的信息。