화면 세션에서 실행되는 스크립트를 시작 및 중지하는 유지 관리 루틴 자동화를 위해 노력하고 있습니다. 내 접근 방식은 화면 세션을 종료 한 다음 다시 시작하고 스크립트를 사용하여 화면을 만들고 화면에 연결할 필요없이 명령을 전달하는 기능을 사용하여 스크립트 내에서 명령을 실행하는 것입니다.
그러나 나는 이것에 어려움을 겪고있다. 를 사용하여 첨부하지 않고 화면을 올바르게 만들 수 있습니다 screen -d -m -S screen_name
. 그러나 다음을 기반으로 명령을 실행하면 :
screen -S screen_name-X stuff "command 1"'echo -ne '\015''"command 2"'echo -ne '\015''
echo -ne '\ 015'는 작은 따옴표 대신 백틱으로 래핑됩니다. 내가 사용하는 명령이 디렉토리로 이동하고 거기에있는 스크립트를 실행함에 따라 Enter 키를 누르는 사용자를 시뮬레이션하는 것입니다. 이 명령은 작동하지만 화면을 만든 후에 만 연결된 경우에만 작동합니다. 화면을 만들고 화면 내에서 명령을 실행하는 프로세스를 자동화하려고 할 때 스크립트 내에서 연결하거나 분리하지 않아도됩니다. 화면 내에서 실행하고 결과에 따라 편집 해야하는 명령이 포함 된 셸 스크립트를 만들 것을 제안합니다.
하나의 명령으로 또는 화면을 만들지 않고 명령을 실행하기 전에 화면에 첨부하지 않고도 화면을 만들고 화면 내에서 명령을 실행하는 방법이 있습니까?
미리 감사드립니다.
** 업데이트-쉘 스크립트 내에서 실행 해야하는 명령을 배치하기 위해 제안을 시도했지만 화면을 성공적으로 작성하고 화면 내에서 명령을 실행할 수 있었지만 스크립트 실행이 중지되면 동작이 발생합니다. 화면도 닫힙니다. 스크립트가 sys 관리자에 대한 지식이나 개발하려는 스크립트를 통해서만 중지해야하는 로깅 스크립트이므로 문제가되지 않아야합니다. 그러나 화면이 그런 방식으로 화면을 설정하는 것이 좋습니다 스크립트가 중지 된 경우 사라지지 않습니다. 이 동작을 달성 할 수 있습니까? **
.screenrc
경우 줄이 포함 된 스페셜 을 사용하면 zombie kr
완성 된 창이 열린 상태로 유지되며를 눌러 창 k
을 닫거나 r
창에서 명령을 다시 실행할 수 있습니다. 내 기본 .screenrc에 대해 이것을 가지고 있습니다.