Brad와 Mankoff의 솔루션은 모두 좋은 제안입니다. 두 가지의 조합과 비슷한 또 다른 것은 GNU Screen 을 사용 하여 대기열을 구현하는 것입니다. 백그라운드에서 실행할 수 있다는 장점이 있으며, 언제든지 확인할 수 있으며, 새 명령을 대기열에 추가하면 이전 명령이 종료 된 후에 실행될 명령을 버퍼에 붙여 넣기 만하면됩니다.
먼저 다음을 실행하십시오.
$ screen -d -m -S queue
(우연히, 이제 멋진. screenrc 파일 을 가지고 놀기에 좋은 시간입니다 )
그러면 대기열이라는 배경 화면 세션이 나타납니다.
이제 원하는만큼 명령을 대기열에 넣습니다.
screen -S queue -X stuff "echo first; sleep 4; echo second^M"
테스트를 위해 위의 여러 명령을 수행하고 있습니다. 사용 사례는 다음과 같습니다.
screen -S queue -X stuff "echo first^M"
screen -S queue -X stuff "echo second^M"
위의 줄에서 "^ M"은 포함 된 줄 바꿈을 가져 오는 방법으로, 나중에 스크린이 기존 bash 쉘에 채워진 후에 해석 될 것입니다. 해당 시퀀스를 얻으려면 "CTL-V"를 사용하십시오.
간단한 셸 스크립트를 만들어서 자동화하고 명령을 대기시키는 것은 매우 쉽습니다. 그런 다음 백그라운드 큐의 상태를 확인할 때마다 다음을 통해 다시 연결하십시오.
screen -S queue -r
기술적으로는 화면 세션의 이름을 지정할 필요조차 없으며 정상적으로 작동하지만 일단 연결되면 항상 실행중인 상태로두기를 원할 것입니다. ;-)
물론 그렇게하면, 또 다른 좋은 방법은 현재 창 중 하나의 이름을 "큐"로 지정하고 사용하는 것입니다.
screen -S queue -p queue -X stuff "command"