가동 서비스가 시작되지 않거나 완전히 중지되지 않음


11

teamspeak 서버에 대한 간단한 시작 스크립트를 만들려고하는데 작동하지 않습니다.

내가 initctl start 라고 말하면 그냥 실행되지만 결코 끝나지 않거나 심지어 메시지를 내 보냅니다. stop 도 마찬가지입니다 .

내가 잘못하고 있지 않은지 확인하기 위해 cron 스크립트를 복사하여 실행하려고했지만 동일한 방식으로 발생합니다.

내가 여기서 뭘 잘못하고 있니?

최신 정보:

다음은 TS3의 스크립트입니다.

# myservice - myservice job file
description "my service description"
author "Me <myself@i.com>"

# Stanzas
#
# Stanzas control when and how a process is started and stopped
# See a list of stanzas here: http://upstart.ubuntu.com/wiki/Stanzas#respawn

# When to start the service
start on runlevel [2345]

# When to stop the service
stop on runlevel [016]

# Automatically restart process if crashed
respawn

# Essentially lets upstart know the process will detach itself to the background
expect fork

# Start the process
script
       emit going into TS3 dir
       chdir /home/danizmax/teamspeak3-server_linux-x86/
       emit starting TS3
       exec su -c "/home/danizmax/teamspeak3-server_linux-x86/ts3server_startscript.sh start" danizmax &
       emit done
end script

가장 간단한 스크립트로도 시도했지만 작동하지 않습니다.

description     "regular background program processing daemon"

start on runlevel [2345]
stop on runlevel [!2345]

expect fork
respawn

exec echo example
console output

도와 주셔서 감사합니다.


실행하려는 시작 작업을 표시하여 디버깅 할 수 있습니까? 왜 보지 않고 걸려 있는지 알기가 어렵습니다.
slangasek

난 그냥 쉘에 반환 중지 결코, 크론 스크립트를 복사하여 실행 시도하고 같은 일이 한
danizmax

여전히 시작 스크립트를 확인해야합니다. 그것 없이는 우리가 할 수있는 일이 없습니다. 게시하거나 링크를 제공하십시오.
hggdh

스크립트를 보지 않고 내가 할 수있는 일은 다음과 같습니다. 스크립트가 upstart에서 루트로 실행되도록 관리합니까? 루트의 PATH가 다릅니다. 스크립트가 루트의 PATH에없는 응용 프로그램을 사용하려면 전체 경로를 지정해야합니다. 스크립트에 반환되지 않는 프로그램이 있습니까?
waltinator

답변:


1

당신의 스타트 업 작업에 머리가 긁히는 이상한 점이 많이 있습니다.

1) emit는 내가 아는 프로그램이 아니므로 시스템 경로에 추가하지 않으면 오류가 발생할 수 있습니다. '에코'를 의미 했습니까? 보이지 않을 수도있는 시스템 콘솔로 이동하기 때문에 도움이되지 않을 수도 있습니다.

2) '방출'스탠자가 작동한다고 가정하면 '포크 기대'라고 말한 다음 실제로 두 번 포크 합니다. '스크립트'에 대해 한 번, 팀이 스크립트를 말할 때 다시 배경을 만듭니다.

3) 당신은 "su"스크립트를 실행하지만 start-stop-daemon은 실제로 대부분의 경우 더 간단합니다.

11.10 chdir부터는 in 스크립트 를 수행 할 필요가 없습니다. 어떤 버전의 가동이 시작된 후에 추가되었는지 확실하지 않습니다. man 5 init단어 확인chdir

start on runlevel [2345]
stop on runlevel [^2345]

respawn

chdir /home/danizmax/teamspeak-server
expect fork

exec start-stop-daemon --start --user danizmax --group danizmax --exec /home/danizmax/teamspeak3-server_linux-x86/ts3server_startscript.sh -- start

또한 / var / log / syslog에 오류가보고 될 수 있습니다. 다음을 실행하여 오류 수준을 상당히 높일 수 있습니다

initctl log-priority info

man initctl 더 많은 로그 수준.


OP는 아니지만 (danimaz) su를 사용하여 서버가 자신의 사용자로 실행되고 루트가되지 않습니다.
Javier Rivera

Hah doh, 하단의 스크롤 막대가 없습니다. 사용자 이름을 숨기도록 완벽하게 정렬되었습니다. - P
SpamapS
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.