분리 된 스크린 세션 시작 : screen -d -m script.sh 2>&1 |

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


답변