Я хотел бы начать сеанс с отключенным экраном, но я хочу оценить некоторый bash. Кажется, экран поддерживает только исполняемый файл и двоичный файл. Я хочу творить волшебство, например:
screen -d -m script.sh 2>&1 | tee logfile.log
но это явно не работает. Цитирование здесь не помогает. Единственная идея, которая у меня есть, - создать сценарий-оболочку, который будет выполнять это перенаправление, а затем вызывать его напрямую, например:
screen -d -m wrapper_script.sh
Есть другие идеи? Спасибо.
У вас может быть экран, запускающий оболочку 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'
Вы пробовали указать -L
вариант экрана записать в лог?
Вы также можете указать имя журнала, используя файл ~/.screenrc
- вот мое содержимое в качестве примера:
defutf8 on
deflog on
logfile /home/me/convert.log
multiuser on