Starten Sie die Sitzung mit getrenntem Bildschirm

8

Ich möchte eine Sitzung ohne Bildschirm starten, möchte aber eine Bash bewerten. Es scheint, dass der Bildschirm nur eine ausführbare und binäre Datei unterstützt. Ich möchte etwas zaubern wie:

screen -d -m script.sh 2>&1 | tee logfile.log

aber das funktioniert anscheinend nicht. Zitieren hilft hier nicht. Die einzige Idee, die ich habe, ist, ein Wrapper-Skript zu erstellen, das diese Umleitung ausführt, und es dann direkt aufzurufen, wie:

screen -d -m wrapper_script.sh

Irgendwelche anderen Ideen? Vielen Dank.

lzap
quelle

Antworten:

8

Sie könnten auf dem Bildschirm eine Bash-Shell ausführen lassen, die wiederum Ihr Skript ausführt.

Ich habe das gerade getestet:

screen -d -m bash -c 'vmstat 5 3 2>&1 | tee logfile.log'

was mir folgendes gab:

kenny@t520:~$ cat logfile.log 
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 1  0      0 5864764 103072 884512    0    0    66    36 1236 1818 17  6 77  0
 0  0      0 5864252 103072 884512    0    0     0     0  311  574  1  1 98  0
 1  0      0 5861532 103080 884512    0    0     0     4 1244 2302  4  2 94  0

Das sollte also auch funktionieren:

screen -d -m bash -c 'script.sh 2>&1 | tee logfile.log'
Kenny Rasschaert
quelle
Oh, ich habe es versucht, hatte aber einen Tippfehler! Danke vielmals.
lzap
4

Haben Sie versucht, die -LBildschirmoption zum Schreiben in ein Protokoll anzugeben ?

Sie können den Namen des Protokolls auch anhand der Datei angeben. ~/.screenrcHier ist der Inhalt von mir als Beispiel:

defutf8 on
deflog on
logfile /home/me/convert.log
multiuser on
njahnke
quelle
Danke, das sollte es auch tun! Upvoting, aber Kennys Antwort ist allgemeiner. VIELEN DANK.
lzap