我已经成功安装了TeamCity ib CentOS 6.2 Minimal。 我试图在系统启动时自动运行脚本:
/opt/TeamCity/bin/teamcity-server.sh start
我一直在search,并尝试各种方法,似乎都失败了。 大多数方法指向将启动脚本添加到其中一个rc.local文件中:
/etc/rc.d/rc.local /etc/rc.local
而rc.local的内容包含这一行:
/opt/TeamCity/bin/teamcity-server.sh start
这些都不会启动teamcity服务器
如果我手动运行脚本没有问题。
看起来很简单,但我如何获得一个shell脚本自动运行?
如果teamcity start脚本是符合LSB的初始化脚本 (也就是说, 如果它提供了启动 , 停止和其他参数 ),则可以将该脚本复制到/etc/init.d文件夹并以root身份运行:
# chkconfig --add <script_name> # chkconfig <script_name> on
该文件的符号链接应该也可以。 所以尝试(作为根):
# ln -s /opt/TeamCity/bin/teamcity-server.sh /etc/init.d/teamcity-server # chkconfig --add teamcity-server # chkconfig teamcity-server on
如果它没有在初始化时启动,但手动启动没有问题,您应该检查:
要打印PATH的内容,只需运行:
echo $PATH
要检查脚本未启动的原因是否是PATH,请尝试:
$ cd / $ PATH= /opt/TeamCity/bin/teamcity-server.sh
该命令将暂时清除PATH并运行该命令。 如果这个命令需要一些关于PATH的特定信息,它将会失败(小心地按照上面所述的方式运行,在PATH =和剩下的命令之间有一个空格)。
在Fedora 17命令
# chkconfig --add teamcity-server
说:服务teamcity – 服务器不支持chkconfig你应该添加标题如:
#! /bin/bash # chkconfig: - 10 90
只有在运行第一个命令之后。
当脚本手动运行时,它可以正常工作。 但是,当自动运行它不起作用。
我find了罪魁祸首:TeamCity在用户teamcity运行。 它必须存在于/etc/sudoers文件中,你应该使用visudo来添加这样一行:
Defaults:teamcity !requiretty