Démarrer une session d'écran détaché

8

Je voudrais démarrer une session d'écran détaché, mais je veux évaluer certains bash. Il semble que l'écran ne supporte qu'un exécutable et binaire. Je veux faire de la magie comme:

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

mais cela ne fonctionne apparemment pas. Citer n'aide pas ici. La seule idée que j'ai est de créer un script wrapper qui fera cette redirection puis de l'appeler directement, comme:

screen -d -m wrapper_script.sh

D'autres idées? Merci.

lzap
la source

Réponses:

8

Vous pourriez faire exécuter à l'écran un shell bash, qui à son tour exécute votre script.

Je viens de tester ceci:

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

ce qui m'a donné ceci:

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

Cela devrait donc aussi fonctionner:

screen -d -m bash -c 'script.sh 2>&1 | tee logfile.log'
Kenny Rasschaert
la source
Oh, j'essayais ça mais j'avais une faute de frappe! Merci beaucoup.
lzap
4

Avez-vous essayé de spécifier l' -Loption d'écran pour écrire dans un journal?

Vous pouvez également spécifier le nom du journal à l'aide du fichier ~/.screenrc- voici le contenu du mien à titre d'exemple:

defutf8 on
deflog on
logfile /home/me/convert.log
multiuser on
njahnke
la source
Merci, ça devrait le faire aussi! Upvoting, mais la réponse de Kennys est plus générique. MERCI.
lzap