화면 분리 세션을 시작하고 싶지만 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