centos에서 시스템 시작시 자동으로 스크립트를 실행하는 방법


8

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 서버를 시작하지 않습니다

스크립트를 수동으로 실행해도 문제가 없습니다.

간단하지만 셸 스크립트를 자동 실행하려면 어떻게해야합니까?


1
'어떤 작품도 없음'의 의미를 설명해야합니다. 그것 없이는 모두가 추측하기 때문입니다. 수행 한 작업과 발생한 출력 또는 실패 메시지 또는 이벤트에 대해 자세히 설명 할 수 있습니까?
EightBitTony

그것이 올바른 장소이기 때문에 /etc/rc.d/rc.local 항목이나 스크립트 자체에 문제가없는 것 같습니다. 스크립트 및 rc.local의 내용을 게시 할 수 있습니까? 또한 teamcity-server.sh 쉘 스크립트는 수동으로 수행 할 때 실행됩니까?
퀸 머피

예, teamcity-server는 수동으로 정상적으로 실행됩니다. 그러나 서버를 다시 시작할 때마다이 작업을 수행하는 것은 실용적이지 않습니다 ...
atp03

rc.local을 통하지 않고 수동으로 실행하는 것은 환경 적 차이를 의미합니다. 당신의 경로는 무엇입니까? 다른 env 변수가 있습니까?
cjc

@cjc 'PATH'의 의미가 확실하지 않습니다. 그러나 /etc/rc.d/rc.local을 수동으로 실행하면 teamcity 서버도 정상적으로 시작할 수 있습니다. 여전히 차이가 있습니까?
atp03

답변:


15

teamcity 시작 스크립트가 LSB 호환 초기화 스크립트경우 (즉, start , stop 및 기타 인수를 제공하는 경우 ) 스크립트를 /etc/init.d폴더에 복사하고 루트로 실행할 수 있습니다 .

# 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

초기화시 시작되지 않지만 문제없이 수동으로 시작하는 경우 다음을 확인해야합니다.

  1. 권한 (프로그램이 루트로 실행되지 않을 수 있습니다. 루트로 로그온하여 실행 해보십시오) 및;
  2. PATH (스크립트에 무언가가 필요할 수도 있지만 어디에 있는지 모릅니다).

PATH의 내용을 인쇄하려면 다음을 실행하십시오.

echo $PATH

스크립트가 시작되지 않은 이유가 PATH인지 확인하려면 다음을 시도하십시오.

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

이 명령은 PATH를 일시적으로 지우고 명령을 실행합니다. 명령 필요가 실패합니다 PATH에 일부 특정 정보가있는 경우 (위에서 언급 한대로 정확히 실행하는 데주의, 거기는 사이에 공백이 PATH는 = 및 명령의 나머지).


6

Fedora 17 명령에서

# chkconfig --add teamcity-server

예 : service teamcity-server는 chkconfig를 지원하지 않습니다. 다음과 같은 헤더를 추가해야합니다.

#! /bin/bash
# chkconfig: - 10 90

그 후에 만 ​​첫 번째 명령을 실행하십시오.


2
스크립트가 /etc/init.d/:-) 에 있는지 확인하십시오
Bart De Vos

2

스크립트를 수동으로 실행하면 올바르게 작동합니다. 그러나 자동으로 실행되면 작동하지 않습니다.

범인을 찾았습니다. TeamCity는 사용자로 실행됩니다 teamcity. 파일에 있어야하며 다음과 같은 줄을 /etc/sudoers사용하여 추가해야합니다 visudo.

Defaults:teamcity !requiretty
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.