Il servizio di avvio non si avvia o si arresta mai completamente


11

Sto cercando di creare un semplice script di avvio per il server di teamspeak, ma non riesco a farlo funzionare.

Quando dico initctl start, viene eseguito ma non termina o emette messaggi. Lo stesso sta accadendo per l' arresto .

Per essere sicuro di non fare nulla di male, ho copiato lo script cron e ho provato a eseguirlo, ma succede lo stesso.

cosa sto facendo di sbagliato qui?

AGGIORNARE:

ecco la mia sceneggiatura per 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

Ho provato anche con lo script più semplice e anche quello non funziona:

description     "regular background program processing daemon"

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

expect fork
respawn

exec echo example
console output

Grazie per l'aiuto.


Potresti voler mostrare il processo di avvio che stai cercando di eseguire in modo che possiamo eseguirne il debug? Difficile sapere perché è appeso senza vederlo.
slangasek,

Ho copiato lo script cron e ho provato a eseguirlo e succede lo stesso, si ferma e non torna mai alla shell
danizmax,

Dobbiamo ancora vedere il tuo script upstart. Senza di essa, non c'è nulla che possiamo fare. Per favore pubblicalo o forniscici un link ad esso.
hggdh,

Senza vedere la sceneggiatura, tutto ciò che posso fare è indovinare: la tua sceneggiatura si preoccupa che sia eseguita come root da upstart? Il PERCORSO di Root è diverso. Se il tuo script vuole usare un'applicazione che non si trova nel PERCORSO di root devi specificare il percorso completo. C'è un prog nella tua sceneggiatura che non ritorna?
Waltinator,

Risposte:


1

ci sono una serie di stranezze nel tuo lavoro iniziale che mi fanno grattare la testa.

1) emit non è un programma che io conosca, quindi a meno che tu non l'abbia aggiunto al percorso di sistema, ciò provoca probabilmente errori. Intendevi "eco"? Anche questo potrebbe non essere utile, poiché andrà alla console di sistema che potrebbe non essere visibile.

2) Supponendo che la stanza "emit" funzioni, dici "aspetta fork" ma poi effettivamente fork due volte . Una volta per lo 'script', e poi di nuovo quando lo script teamspeak si biforca da solo.

3) "su" per eseguire lo script, ma start-stop-daemon è in realtà più semplice nella maggior parte dei casi:

Con 11.10, non è necessario eseguire lo chdirscript in, non sono sicuro che sia stato aggiunto dopo qualunque versione di upstart possiedi. Controlla man 5 initla parolachdir

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

Inoltre, gli errori verranno probabilmente segnalati in / var / log / syslog. È possibile aumentare un po 'il livello di errore eseguendo

initctl log-priority info

man initctl per più livelli di registro.


Non l'OP, ma sta usando (danimaz) su per eseguire il server come suo utente, non per diventare root.
Javier Rivera,

Hah doh, manca la barra di scorrimento in basso .. perfettamente allineata per nascondere il nome utente. :-P
SpamapS
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.