2016-05-03 5 views
1

Ich habe eine Skriptdatei wie folgt.Skript fertig, Datei ist Typoskript in bash beim Erstellen eines Dienstes

#!/bin/bash 
set -x 
set -e 
#VBoxManage startvm "cuckoo-window" --type gui 
python ~/Downloads/cuckoo-modified-master/utils/api.py --host 0.0.0.0 --port 8090 
#cd ~/Downloads/cuckoo-modified-master/web/ 
# python manage.py runserver 0.0.0.0:8008 
# python ~/Downloads/cuckoo-modified-master/cuckoo.py 

Mein Service Skript /etc/init/miscservices.conf

start on runlevel 
script 
    cd ~/Downloads/cuckoo-modified-master 
    ./miscservices.sh 
end script 

ich auch einen Symlink in /etc/init.d/miscservices erstellt haben und in Start hinzugefügt

sudo update-rc.d miscservices defaults 

sudo service miscservices start 
miscservices stop/waiting 

Kein Skript gestartet. Wenn ich wie folgt anfange, bewegen sie sich in den Root-Modus, aber immer noch kein Dienststart. Aber wenn ich es beende, starte 2 Instanzen des Dienstes. Erklären Sie bitte dieses Verhalten.

sudo /etc/init.d/miscservices start 
start: Unknown job: on 
Script started, file is typescript 
[email protected]:~# sudo netstat -ntlp | grep 8090 
[email protected]:~# ps -aux | grep misc 
root  2929 0.0 0.0 81976 2260 pts/6 S+ 13:42 0:00 sudo /etc/init.d/miscservices start 
root  2930 0.0 0.0 4440 652 pts/6 S+ 13:42 0:00 sh /etc/init.d/miscservices start 
root  2962 0.0 0.0 16192 936 pts/15 S+ 13:43 0:00 grep --color=auto misc 
[email protected]:~# 
[email protected]:~# 
[email protected]:~# exit 
exit 
Script done, file is typescript 
+ set -e 
+ python /home/aserg/Downloads/cuckoo-modified-master/utils/api.py --host 0.0.0.0 --port 8090 
Bottle v0.12.0 server starting up (using WSGIRefServer())... 
Listening on http://0.0.0.0:8090/ 
Hit Ctrl-C to quit. 
+0

Was ist der beste Weg, ein Skript beim Booten als Dienst zu starten. Ich brauche die folgenden Befehle zum Ausführen. #!/Bin/bash VBoxManage startvm "Kuckuck-Fenster" --type gui & cd/opt/Kuckuck/utils/ sudo python api.py --host 0.0.0.0 --port 8090 & cd/opt/cuckoo/web/ sudo python manage.py runserver 0.0.0.0:8008 & sudo python /opt/cuckoo/cuckoo.py & – Goforseeking

Antwort

0

denke ich, das Problem in ~/Downloads/cuckoo-modified-master/miscservices.sh Skript sein kann (und btw ~ in Emporkömmling Skript nicht bester Idee zu verwenden, weil es wahrscheinlich als root ausgeführt wird, und es kann einige Probleme mit determitate sein, wo ist ~). Standardmäßig erzeugt Upstart keine Prozesse. Das heißt, wenn Sie Ihre Konfiguration so haben:

start on runlevel 
script 
    cd ~/Downloads/cuckoo-modified-master 
    ./miscservices.sh 
end script 

Upstart wird nur einmal Ihren Prozess starten und dann nichts tun. Und wenn Sie es einmal starten und es einen Skriptfehler gab, stoppte es ohne weitere Informationen an Sie. Sie können die Protokolldatei überprüfen. Standardmäßig muss es in /etc/log/upstart/miscservices.log (für Ubuntu 14.04 LTS) sein. Wenn nein, können Sie überprüfen, wo sich die Standard-Upstart-Protokolle in Ihrem Betriebssystem befinden, oder sie manuell schreiben, indem Sie an einem bestimmten Ort einige Informationen zurückgeben. Zum Beispiel:

env logf="/home/someuser/miscservices.log" 
script 
    echo "Script it starting..." >> $logf 
    /home/someuser/Downloads/cuckoo-modified-master/miscservices.conf >> $logf 
    echo "Script is ended." >> $logf 
end scipt 

Und wenn Sie wollen Skript respawnen Prozesse, die Sie an die beggining des Skripts hinzufügen können:

respawn 
respawn limit unlimited 

oder einfach nur unbegrenzt Schleife in Skriptdatei machen.

ps. Sie können Ihr Upstart-Skript /etc/init/miscservices.conf durch klareren Code ändern. Von start on runlevel zu:

start on filesystem 
stop on shutdown 

bedeutet dies, dass Skript wird nach dem Dateisystem startet und wird heruntergefahren beim Herunterfahren starten.

pps. Sie brauchen keinen Symlink in /etc/init.d/miscservices. Wenn du Emporkömmling benutzt, dann benutze es einfach! Du brauchst nichts anderes. Setzen Sie einfach Ihren End-Scip in /etc/init und es wird automatisch gestartet. Es kann so etwas sein:

start on filesystem 
stop on shutdown 

env logf="/home/someuser/miscservices.log" 
script 
    echo "Script it starting..." >> $logf 
    /home/someuser/Downloads/cuckoo-modified-master/miscservices.conf >> $logf 
    echo "Script is ended." >> $logf 
end scipt 

Ich hoffe, ich kann helfen!

+0

Sie haben mehr als helfen. Vielen Dank. – Goforseeking

Verwandte Themen