Ich habe folgendes Startskript geschrieben:
SESSION_NAME="session1"
COMMAND="python /opt/aaa/manage.py runserver 192.168.1.1:4300"
case "$1" in
start)
screen -dmS "$SESSION_NAME" "$COMMAND" "$ARGUMENTS"
echo "session1 started"
;;
stop)
echo "Stopping session1"
screen -S session1 -X quit
echo "."
echo "session1 stopped"
;;
restart)
echo "Restarting session1"
screen -S session1 -X quit
echo "."
screen -dmS "$SESSION_NAME" "$COMMAND" "$ARGUMENTS"
echo "session1 has restarted"
;;
*)
echo "Usage: /etc/init.d/session1 {start|stop|restart}"
exit 1
;;
esac
exit 0
Aber wenn ich /etc/init.d/startscript.sh starte, funktioniert es nicht. Die Bildschirmsitzung wird nicht ausgeführt. Kannst du mir bitte helfen? Vielen Dank für die Antworten.
/usr/bin/screen
und/usr/bin/python
(oder wo immer diese ausführbaren Dateien sind)?Antworten:
Die Probleme mit Diensten sind Benutzer und tty.
Eine andere Möglichkeit, den Bildschirm beim Booten laufen zu lassen, besteht darin, dass sich der Benutzer automatisch anmeldet und dann den Bildschirm mit einer vorkonfigurierten Reihe von Fenstern und Befehlen in '~ / .screenrc' startet.
Verbinden Sie sich bei der Anmeldung erneut mit diesem Bildschirm.
quelle
Der einzige Grund, warum ich sehe, dass Ihr Bildschirm nicht startet, ist ein Fehler im Python-Befehl. Um das Problem zu identifizieren, kann der Skriptbefehl hilfreich sein. Die Ausgabe wird in eine Protokolldatei geschrieben, die Sie lesen können.
Hier ist eine verbesserte Version des Skripts mit den Informationen, die ich normalerweise in meinen Skripts hinzufüge:
quelle
script
installiert? 2 / Wenn Sie den genauen Python-Befehl eingeben, den Sie in Ihrem Startskript haben, wird er korrekt ausgeführt? 3 / Haben Sie den Text "session1 started" gedruckt, wenn Sie den Befehl verwenden?Ich denke, das Problem liegt bei Ihrer
$COMMAND
Variablen. Der Befehlsname sollte diepython
ausführbare Datei sein, der Rest sind Argumente. Wenn Sie es jedoch in Anführungszeichen setzen,screen
denken Sie, dass der Name des Befehls die gesamte Zeichenfolge ist, und suchen Sie nach einer ausführbaren Datei mit diesem Namen.Versuche dies:
dh ohne die umgebenden Anführungszeichen
$COMMAND
und ohne die (unnötige)$ARGUMENTS
Variable. Das sollte funktionieren.quelle
Schließlich habe ich dieses Skript verwendet, aber den Befehl für ein neues Fenster entfernt - Wie kann ich ein neues Fenster in derselben Bildschirmsitzung automatisch starten?
quelle