스크립트가 $PATH에 없는 경우 화면 내에서 자동으로 스크립트를 실행하는 방법

스크립트가 $PATH에 없는 경우 화면 내에서 자동으로 스크립트를 실행하는 방법

스크립트를 실행하기 전에 디렉토리에 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'

몇 가지 관찰 사항:

  1. 적절하게 설정된 애플리케이션은 제대로 작동하기 위해 작업 디렉토리에 의존해서는 안 되므로 그렇게 할 수 있어야 합니다( 동일한 애플리케이션에 대한 명시적인 호출을 피할 수 screen python repos/script.py있다는 사실에 관계없이 ).python

  2. 에 넣으면 ~/.screenrc새로운 화면 호출마다 명령이 실행됩니다. 정말로 그걸 원하시나요?

관련 정보