Layanan pemula tidak pernah dimulai atau berhenti sepenuhnya

11

Saya mencoba membuat skrip pemula sederhana untuk server timpeak, tetapi tidak dapat membuatnya berfungsi.

Ketika saya mengatakan initctl memulainya hanya dijalankan tetapi tidak pernah menyelesaikan atau bahkan memancarkan pesan apa pun. Hal yang sama terjadi untuk berhenti .

Untuk memastikan saya tidak melakukan kesalahan apa pun, saya telah menyalin skrip cron dan mencoba menjalankannya, tetapi itu terjadi sama.

apa yang saya lakukan salah di sini?

MEMPERBARUI:

inilah skrip saya untuk TS3:

# myservice - myservice job file
description "my service description"
author "Me <[email protected]>"

# 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

Saya mencoba bahkan dengan skrip paling sederhana, dan itu juga tidak berhasil:

description     "regular background program processing daemon"

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

expect fork
respawn

exec echo example
console output

Terima kasih untuk bantuannya.

danizmax
sumber
Anda mungkin ingin menampilkan pekerjaan pemula yang Anda coba jalankan sehingga kami dapat men-debug-nya? Sulit untuk mengetahui mengapa itu tergantung tanpa melihatnya.
slangasek
Saya telah menyalin skrip cron dan mencoba menjalankannya dan itu terjadi sama, hanya berhenti dan tidak pernah kembali ke shell
danizmax
Kami masih perlu melihat skrip pemula Anda. Tanpanya, tidak ada yang bisa kita lakukan. Silakan mempostingnya, atau berikan kami tautan ke sana.
hggdh
Tanpa melihat skrip, yang bisa saya lakukan hanyalah menebak: Apakah skrip Anda peduli bahwa skrip dijalankan sebagai root oleh pemula? PATH Root berbeda. Jika skrip Anda ingin menggunakan aplikasi yang tidak ada dalam PATH root, Anda harus menentukan path lengkap. Apakah ada prog di skrip Anda yang tidak kembali?
waltinator

Jawaban:

1

ada sejumlah keanehan dalam pekerjaan pemula Anda yang membuat saya menggaruk-garuk kepala.

1) emit bukan program yang saya tahu, jadi kecuali Anda telah menambahkannya ke jalur sistem, itu mungkin menyebabkan kesalahan. Apakah maksud Anda 'gema'? Itu mungkin juga tidak membantu, karena itu akan pergi ke konsol sistem yang mungkin tidak terlihat.

2) Dengan asumsi bait 'emit' bekerja, Anda mengatakan 'berharap garpu' tetapi kemudian benar-benar bercabang dua . Sekali untuk 'skrip', dan sekali lagi ketika skrip timpeak garpu untuk latar belakang itu sendiri.

3) Anda "su" untuk menjalankan skrip, tetapi start-stop-daemon sebenarnya lebih sederhana untuk kebanyakan kasus:

Dengan 11.10, Anda tidak perlu melakukan chdirskrip in, tidak yakin apakah itu ditambahkan setelah versi pemula apa pun yang Anda miliki. Periksa man 5 initkatachdir

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

Juga, kesalahan kemungkinan akan dilaporkan di / var / log / syslog. Anda dapat meningkatkan level kesalahan sedikit dengan menjalankan

initctl log-priority info

man initctl untuk lebih banyak level log.

SpamapS
sumber
Bukan OP, tapi dia menggunakan (danimaz) su untuk mengeksekusi server sebagai penggunanya, bukan untuk menjadi root.
Javier Rivera
Hah doh, ketinggalan bilah gulir di bagian bawah .. sempurna selaras untuk menyembunyikan nama pengguna. :-P
SpamapS