TeamCity ib CentOS 6.2 Minimalのインストールに成功しました。システムの起動時にスクリプトを自動的に実行しようとするのに行き詰まっています。
/opt/TeamCity/bin/teamcity-server.sh start
私はググってみて、いろいろ失敗したようです。ほとんどのメソッドは、rc.localファイルの1つに起動スクリプトを追加することを示しています。
/etc/rc.d/rc.local
/etc/rc.local
そしてrc.localの内容には次の行が含まれています:
/opt/TeamCity/bin/teamcity-server.sh start
Teamcityサーバーを起動するものはありません
スクリプトを手動で実行しても問題はありません。
単純なようですが、シェルスクリプトを自動実行するにはどうすればよいですか?
Teamcity開始スクリプトが LSB準拠の初期化スクリプト の場合(つまり、 それがstartを提供する場合)、stopと他の引数 )、スクリプトを/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に関する特定の情報を必要とする場合、失敗します(上記のように正確に実行するように注意してくださいTHERE ISの間のスペースPATH =およびコマンドの残りの部分)。
fedora 17コマンドで
# chkconfig --add teamcity-server
言います:service teamcity-serverはchkconfigをサポートしていません。
#! /bin/bash
# chkconfig: - 10 90
最初のコマンドを実行した後にのみ。
スクリプトを手動で実行すると、正しく機能します。ただし、自動的に実行すると機能しません。
犯人を見つけました:TeamCityはユーザーteamcity
で実行されています。これは/etc/sudoers
ファイルに存在している必要があり、visudo
を使用して次のような行を追加する必要があります。
Defaults:teamcity !requiretty