新的CentOS 6附带Upstart,取代了init.我正在尝试将/ etc / inittab文件转换为新的upstart格式.此特定服务器仅具有15个左右的inittab条目,但是,其他服务器具有> 30.我们主要想要inittab和upstart的’respawn’部分.但是,我一直在阅读我能找到的所有新手文档(这几乎都基于Ubuntu,显然是在旧版本的暴发版上)而且没有任何进展.我可以创建一个配置文件(让我们称之为/etc/init/test.conf).该文件包含此内容(注释,匿名)
start on runlevel [345] stop on starting shutdown respawn #Comment about what it does exec su -c "/usr/bin/ssh -2CNL 11111:127.0.0.1:11111 10.10.1.1" username
如果我发出initctl reload-configuration,则会识别作业.我可以通过调用initctl start test启动它,然后该作业将启动.
但是,这不会在重新启动时起作用,只能手动执行.我已经尝试将start命令修改为以下内容,一切都没有运气
start on started start on (local-filesystems and net-device-up IFACE!=lo) start on net-device-up IFACE=eth0
以及我在不同的例子中提到的其他十几种方式.似乎没有启动脚本. (test.conf与此文件夹中的所有其他文件一样,由root拥有,644)
我错过了一些明显的东西吗?
我找到了一个非常非常非常有用的新手脚本,适用于将来遇到问题的人.把它放到/ etc / init /中
# /etc/init/debug.conf start on ( starting JOB!=debug \ or started JOB!=debug \ or stopping JOB!=debug \ or stopped JOB!=debug ) script exec 1>>/tmp/log.file echo -n "$UPSTART_JOB/$UPSTART_INSTANCE ($0):$$:`date`:" echo "Job $JOB/$INSTANCE $UPSTART_EVENTS. Environment was:" env echo end script
此脚本基本上记录所有启动或停止的作业.我发现CentOS 6没有“发出”关于运行级别的任何内容. (也没有尝试过其他一些常见事件.’).查看调试作业在/tmp/log.file中创建的日志文件非常有用.通过更改我的脚本的开头:
start on runlevel [345]
至
start on started sshd
我的所有工作似乎都正常启动.这是后方的痛苦,因为我发现的每个例子都使用了以前的语法.