บริการพุ่งพรวดไม่เริ่มต้นหรือหยุดอย่างสมบูรณ์


11

ฉันพยายามสร้างสคริปต์ธรรมดาสำหรับเซิร์ฟเวอร์ teamspeak แต่ไม่สามารถใช้งานได้

เมื่อฉันบอกว่าinitctl เริ่มต้นมันก็ดำเนินการ แต่ไม่เคยเสร็จสิ้นหรือแม้กระทั่งส่งข้อความใด ๆ เดียวกันที่เกิดขึ้นสำหรับการหยุด

เพื่อให้แน่ใจว่าฉันไม่ได้ทำอะไรผิดฉันได้คัดลอกสคริปต์ cron และพยายามเรียกใช้ แต่ก็เกิดขึ้นเหมือนเดิม

ฉันทำอะไรผิดที่นี่

UPDATE:

นี่คือสคริปต์ของฉันสำหรับ 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

ฉันได้คัดลอกสคริปต์ cron และพยายามเรียกใช้และมันเกิดขึ้นแบบเดียวกันหยุดและไม่กลับไปที่เปลือก
danizmax

เรายังคงต้องเห็นสคริปต์พุ่งพรวดของคุณ ก็ไม่มีสิ่งใดที่เราสามารถทำได้ กรุณาโพสต์หรือให้ลิงค์กับเรา
hggdh

สิ่งที่ฉันทำได้ก็คือเดาว่า: สคริปต์ของคุณสนใจว่ามันจะเริ่มต้นโดยการพุ่งพรวดหรือไม่? PATH ของรูทนั้นแตกต่างกัน หากสคริปต์ของคุณต้องการใช้แอปพลิเคชันที่ไม่ได้อยู่ใน PATH ของรูทคุณต้องระบุพา ธ เต็ม มี prog ในสคริปต์ของคุณที่ไม่กลับมา?
waltinator

คำตอบ:


1

มีสิ่งแปลกประหลาดมากมายในงานพุ่งพรวดของคุณที่ทำให้ฉันเกาหัว

1) ปล่อยไม่ใช่โปรแกรมที่ฉันรู้จักดังนั้นถ้าคุณไม่ได้เพิ่มเข้าไปในเส้นทางของระบบนั่นอาจเป็นสาเหตุที่ทำให้เกิดข้อผิดพลาด คุณหมายถึง 'echo' หรือเปล่า นั่นอาจไม่เป็นประโยชน์เช่นกันเนื่องจากมันจะไปที่คอนโซลระบบซึ่งอาจไม่สามารถมองเห็นได้

2) สมมติว่าผลงาน 'ปล่อย' ฉันท์คุณจะพูดว่าคาดหวังว่าส้อม ' แต่แล้วจริงส้อมสองครั้ง หนึ่งครั้งสำหรับ 'สคริปต์' และอีกครั้งเมื่อสคริปต์ teamspeak ดึงพื้นหลังของตัวเอง

3) คุณ "su" เพื่อเรียกใช้สคริปต์ แต่จริง ๆ แล้ว start-stop-daemon นั้นง่ายกว่าสำหรับกรณีส่วนใหญ่:

ด้วย 11.10 คุณไม่จำเป็นต้องทำchdirในสคริปต์ แต่ไม่แน่ใจว่ามันถูกเพิ่มเข้ามาหลังจากเวอร์ชั่นพุ่งพรวดที่คุณมี ตรวจสอบ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

ฮ่า ๆ ๆ พลาดแถบเลื่อนที่ด้านล่าง .. จัดชิดอย่างสมบูรณ์แบบเพื่อซ่อนชื่อผู้ใช้ :-P
SpamapS
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.