Próbuję stworzyć prosty skrypt wstępny dla serwera teamspeak, ale nie mogę go uruchomić.
Kiedy mówię, że initctl start to po prostu wykonuje, ale nigdy nie kończy ani nawet nie emituje żadnej wiadomości. To samo dzieje się z zatrzymaniem .
Aby upewnić się, że nie robię nic złego, skopiowałem skrypt cron i próbowałem go uruchomić, ale dzieje się tak samo.
co ja tu robię źle?
AKTUALIZACJA:
oto mój skrypt dla 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
Próbowałem nawet z najprostszym skryptem, ale to też nie działa:
description "regular background program processing daemon"
start on runlevel [2345]
stop on runlevel [!2345]
expect fork
respawn
exec echo example
console output
Dziękuję za pomoc
Odpowiedzi:
w twojej początkowej pracy jest wiele dziwactw, które powodują, że drapię się po głowie.
1) emit nie jest programem, który znam, więc chyba że dodałeś go do ścieżki systemowej, prawdopodobnie spowoduje to błędy. Miałeś na myśli „echo”? To też może nie być pomocne, ponieważ przejdzie do konsoli systemowej, która może nie być widoczna.
2) Zakładając, że zwrotka „emituj” działa, mówisz „oczekuj rozwidlenia”, ale wtedy faktycznie rozwidlamy dwa razy . Raz dla „skryptu”, a potem znowu, gdy skrypt teamspeak prosi się o samo tło.
3) „su”, aby uruchomić skrypt, ale start-stop-demon jest w rzeczywistości prostszy w większości przypadków:
W wersji 11.10 nie musisz wykonywać
chdir
skryptu, nie jestem pewien, czy został on dodany po jakiejkolwiek wersji ulepszenia, którą posiadasz. Sprawdźman 5 init
słowochdir
Również błędy będą prawdopodobnie zgłaszane w / var / log / syslog. Można znacznie zwiększyć poziom błędu, uruchamiając
man initctl
więcej poziomów dziennika.źródło