Начать отдельный сеанс экрана

8

Я хотел бы начать сеанс отсоединения экрана, но я хочу оценить некоторые проблемы. Кажется, экран поддерживает только исполняемый и двоичный файл. Я хочу сделать немного магии, как:

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

но это, видимо, не работает. Цитирование здесь не помогает. Единственная идея, которую я имею, - это создать скрипт-обертку, который будет выполнять это перенаправление, а затем вызывать его напрямую, например:

screen -d -m wrapper_script.sh

Есть еще идеи? Спасибо.

lzap
источник

Ответы:

8

Вы можете запустить экранную оболочку bash, которая, в свою очередь, запускает ваш скрипт.

Я только что проверил это:

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

который дал мне это:

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

Так что это тоже должно работать:

screen -d -m bash -c 'script.sh 2>&1 | tee logfile.log'
Кенни Рассчарт
источник
О, я пытался это, но была опечатка! Большое спасибо.
lzap
4

Вы пытались указать -Lопцию экрана для записи в журнал?

Вы также можете указать имя журнала, используя файл ~/.screenrc- вот мое содержимое в качестве примера:

defutf8 on
deflog on
logfile /home/me/convert.log
multiuser on
njahnke
источник
Спасибо, это тоже надо делать! Upvoting, но ответ Кенни является более общим. БЛАГОДАРЮ ВАС.
lzap