fragen stichworte

Starten einer Hintergrundbildschirmsitzung von ssh.

Ich möchte einen Befehl an den Server senden, der für immer ausgeführt werden soll! unter "screen session" mit ssh.

also verwende ich so etwas wie

ssh -t root@server screen -S myinf "python infinit1.py &"

Dabei ist infinit1.py das Skript. Das Problem "python infinit1.py" tritt nicht in einen Hintergrund und auch kein Bildschirm namens "myinf" wird erstellt.

Ich freue mich über Ihre Hinweise.

antworten

tu dies

ssh -t root@server "nohup bash -c '( (/usr/bin/python infinit1.py &>/dev/null ) & )'"

Dies liegt daran, dass das geöffnete tty geschlossen werden muss und somit den Befehl nicht ausführen kann. Um die Ausgabe anzuzeigen, ändern Sie/dev/null in einen tatsächlichen Dateinamen.

Ich habe nicht versucht, den Remote-Bildschirm zu verwenden, also habe ich das weggelassen. Sie können es vielleicht zur Arbeit bringen, aber vielleicht ist die Syntax ein wenig aus.

Dies liegt daran, dass der Bildschirm, wie er von Ihnen aufgerufen wird, eine Funktion benötigt. Sie müssen den Bildschirm im getrennten Modus starten:

ssh root@server screen -d -m -S myinf python infinit1.py

Sie brauchen weder die Anführungszeichen noch das kaufmännische Und. Verwenden Sie die Optionen -d -m, um den Bildschirm stattdessen in einem separaten Modus zu starten. Werfen Sie einen Blick auf die Manpage, um weitere Informationen zu erhalten.

Eine Arbeitsbeispielbefehlszeile lautet:

ssh $host screen -S myinf -d -m tail -F/var/log/dmesg