Mulai sesi layar terpisah

8

Saya ingin memulai sesi terpisah layar, tetapi saya ingin mengevaluasi beberapa bash. Sepertinya layar hanya mendukung yang dapat dieksekusi dan biner. Saya ingin melakukan sihir seperti:

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

tetapi ini tampaknya tidak berhasil. Mengutip tidak membantu di sini. Satu-satunya ide yang saya miliki adalah membuat skrip wrapper yang akan melakukan pengalihan ini dan kemudian menyebutnya langsung, seperti:

screen -d -m wrapper_script.sh

Ada ide lain? Terima kasih.

lzap
sumber

Jawaban:

8

Anda bisa membuat layar menjalankan bash shell, yang pada gilirannya menjalankan skrip Anda.

Saya baru saja menguji ini:

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

yang memberi saya ini:

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

Jadi ini harus bekerja juga:

screen -d -m bash -c 'script.sh 2>&1 | tee logfile.log'
Kenny Rasschaert
sumber
Oh, saya sudah mencoba ini tetapi ada salah ketik! Terimakasih banyak.
lzap
4

Sudahkah Anda mencoba menentukan -Lopsi layar untuk menulis ke log?

Anda juga dapat menentukan nama log menggunakan file ~/.screenrc- di sini adalah konten milik saya sebagai contoh:

defutf8 on
deflog on
logfile /home/me/convert.log
multiuser on
njahnke
sumber
Terima kasih, itu juga harus dilakukan! Upvoting, tetapi jawaban Kennys lebih umum. TERIMA KASIH.
lzap