我想启动 screen 分离会话,但我想评估一些 bash。screen 似乎只支持可执行文件和二进制文件。我想做一些神奇的事情,例如:
screen -d -m script.sh 2>&1 | tee logfile.log
但这显然不起作用。引用在这里没有帮助。我唯一的想法是创建一个包装器脚本来执行此重定向,然后直接调用它,例如:
screen -d -m wrapper_script.sh
还有其他想法吗?谢谢。
答案1
您可以让 screen 运行 bash shell,然后运行您的脚本。
我刚刚测试了这个:
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'
答案2
您是否尝试过指定-L
屏幕选项来写入日志?
您还可以使用文件指定日志的名称~/.screenrc
- 以下是我的内容作为示例:
defutf8 on
deflog on
logfile /home/me/convert.log
multiuser on