我已经成功安装了 TeamCity ib CentOS 6.2 Minimal。我尝试在系统启动时自动运行脚本,但一直无法成功:
/opt/TeamCity/bin/teamcity-server.sh start
我搜索了各种方法,但似乎都失败了。大多数方法都指向将启动脚本添加到 rc.local 文件之一:
/etc/rc.d/rc.local
/etc/rc.local
rc.local 的内容包含以下行:
/opt/TeamCity/bin/teamcity-server.sh start
这些都无法启动 teamcity 服务器
如果我手动运行脚本,则不会出现任何问题。
看起来很简单,但是如何让 shell 脚本自动运行呢?
答案1
如果 teamcity 启动脚本是符合 LSB 规范的启动脚本(那是,如果它提供开始,停止和其他论点),您只需将脚本复制到/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 的某些特定信息,它将失败(请小心按照上述说明运行,有之间的空间路径=以及命令的剩余部分)。
答案2
在 Fedora 17 命令中
# chkconfig --add teamcity-server
说:服务 teamcity-server 不支持 chkconfig 您应该添加如下标题:
#! /bin/bash
# chkconfig: - 10 90
仅在此之后运行第一个命令。
答案3
手动运行脚本时,它可以正常工作。但是,自动运行时它不起作用。
我找到了罪魁祸首:TeamCity 在用户 下运行teamcity
。它必须存在于/etc/sudoers
文件中,并且您应该使用visudo
如下行添加:
Defaults:teamcity !requiretty