centos6 – 如何在centos中的系统启动时自动运行脚本

我已经成功安装了TeamCity ib CentOS 6.2 Minimal.我一直试图在系统启动时自动运行脚本:

/opt/TeamCity/bin/teamcity-server.sh start

我用Google搜索并尝试了各种方法,所有这些方法似乎都失败了.大多数方法都指向将启动脚本添加到其中一个rc.local文件中:

/etc/rc.d/rc.local
/etc/rc.local

并且rc.local的内容包含以下行:

/opt/TeamCity/bin/teamcity-server.sh start

这些都不会启动teamcity服务器

如果我手动运行脚本没有问题.

看起来很简单,但我如何让shell脚本自动运行?

最佳答案
如果teamcity启动脚本是LSB-compliant init script(即if it provides start, stop and other arguments),则只需将脚本复制到/etc/init.d文件夹并运行(以root身份):

# chkconfig --add <script_name>
# chkconfig <script_name> on

该文件的符号链接也应该没问题.所以尝试(以root身份):

# ln -s /opt/TeamCity/bin/teamcity-server.sh /etc/init.d/teamcity-server
# chkconfig --add teamcity-server
# chkconfig teamcity-server on

如果它不是在初始化时启动,而是手动启动而没有问题,则应检查:

>权限(可能程序不能以root身份运行.尝试以root身份登录并运行它),并且;
>你的PATH(也许脚本需要一些东西,但它不知道它在哪里).

要打印PATH的内容,只需运行:

echo $PATH

要检查脚本无法启动的原因是PATH,请尝试:

$cd /
$PATH= /opt/TeamCity/bin/teamcity-server.sh

此命令将临时清除PATH并运行命令.如果命令需要PATH上的某些特定信息,它将失败(注意完全按照上面所述运行,在PATH =和命令的其余部分之间有一个空格).

转载注明原文:centos6 – 如何在centos中的系统启动时自动运行脚本 - 代码日志