스크립트를 실행하기 전에 디렉토리에 CD를 넣어야 하는 시나리오가 있습니다.
cd repos; python script.py
단, 화면이 시작되면 자동으로 실행되도록 설정해야 합니다. 그래서 .screenrc
나는 이것을 가지고 있습니다 :
screen -t "cd repos; python script.py"
cd repos
하지만 이것은 잘못되었기 때문에 작동하지 않습니다 . 이 디렉토리에 어떻게 CD를 넣나요?
답변1
화면을 실행할 때 기본적으로 이런 일이 발생하도록 하려면 다음을 편집해야 합니다..screenrc문서. 당신은 그것을 사용할 수 있습니다목차지시문을 사용하면 새 화면 창이 열릴 때 디렉터리를 변경할 수 있지만, 새 창이 영향을 받지 않도록 요구 사항이 충족되면 해당 디렉터리를 명시적으로 재설정해야 합니다.
# .screenrc settings to cd to repos and run python-script.py
chdir /full/path/to/repos
screen -t "Python Script" ./python-script.py
# reset the default directory for new windows.
chdir $HOME
screen -t "New Window" bash
screen -t "SSH Session" ssh [email protected]
이는 기본적으로 "./python-script.py"를 해당 창의 셸로 설정하므로 python-script.py가 완료되면 창이 닫힙니다.
답변2
이 옵션은 -t
헤더에 적용되므로 상황에 따라 잘못된 것입니다.
난 쓸수있다
screen sh -c 'cd repos; python script.py'
몇 가지 관찰 사항:
적절하게 설정된 애플리케이션은 제대로 작동하기 위해 작업 디렉토리에 의존해서는 안 되므로 그렇게 할 수 있어야 합니다( 동일한 애플리케이션에 대한 명시적인 호출을 피할 수
screen python repos/script.py
있다는 사실에 관계없이 ).python
에 넣으면
~/.screenrc
새로운 화면 호출마다 명령이 실행됩니다. 정말로 그걸 원하시나요?