백그라운드에서 긴 컴퓨팅 작업을 실행하고 싶습니다. 나는 선택한다 screen
. 하지만 화면이 리디렉션을 허용하지 않는 것으로 나타났습니다. 예를 들어
screen -dmS name ls>ls.dat
생성되지 않습니다 ls.dat
.
다행히 screen -L
화면의 로그가 파일로 출력됩니다. 그러나 pkill screen
완전히 새로운 화면을 실행 하더라도 이전 로그 파일에 추가됩니다 .
새 화면을 시작할 때 이전 로그 파일을 강제로 덮어쓰도록 하는 방법이 있습니까?
답변1
화면이 로그를 덮도록 강제할 수는 없다고 생각합니다. screenlog.%n
기본적으로 %n
화면 창 번호에 기록됩니다(따라서 각 창에는 자체 로그가 있습니다). 파일이 있으면 파일에 추가됩니다.
그러나 타임스탬프를 포함하여 다른 파일 이름을 사용하도록 지시할 수 있으므로 screen
매번 새 로그 파일을 가져오지만 이전 로그를 관리해야 합니다.
.screenrc
다음 줄을 입력할 수 있습니다 .
logfile /path/to/log/screenlog-%n-%Y%m%d-%c:%s
%n
창 번호( )와 연, 월, 일, 시간을 포함하는 로그 파일을 생성합니다 .
bash
또는 screen을 실행하기 전에 로그 파일을 삭제하는 별칭을 만들 수 있습니다 . 예를 들면 다음과 같습니다.
alias screen='rm /path/to/log; screen'
screen
현재 디렉터리의 로그 파일에 영향을 미치려면 /path/to/log/
위 명령에서 삭제하면 됩니다.
마지막으로, 달성하려는 목표에 따라 Linux 도구가 script
로그인보다 더 유용할 수 있습니다 screen
. man script
더 많은 정보를 알고 싶습니다.