저는 Linux를 처음 접했고 상당히 기본적인 질문을 할 수도 있습니다. Linux에서 연속 프로그램을 실행하는 방법은 무엇입니까?
기본적으로 웹사이트의 내용을 지속적으로 확인하는 프로그램이 있습니다. 이 계획은 며칠 동안 시행될 예정입니다. 나는 이 프로그램을 실행하려는 컴퓨터에 대한 관리 권한이 없으며 이 컴퓨터에 대한 독점적인 액세스 권한도 없습니다. 즉, 다른 사용자가 물리적으로 로그인할 수 있습니다. 게다가 예상치 못한 재난이 발생하지 않는 한, 컴퓨터는 내 프로그램이 실행되는 동안 계속해서 실행될 것입니다.
나는 기계에 SSH로 접속하여 프로그램을 실행할 수 있다는 것을 알고 있습니다. 그러나 시간 초과 문제는 말할 것도 없고 이를 완료하려면 두 번째 컴퓨터가 필요하기 때문에(이는 내가 하고 있는 작업의 목적을 무너뜨리기 때문에) 바람직하지 않습니다.
시작 후 연결을 설정하지 않고도 컴퓨터에서 원격으로 프로그램을 실행할 수 있는 방법이 있습니까?
답변1
정기적으로 발생해야 하는 일인 경우 사용합니다 cron
(예: 사이트를 매시간, 하루에 한 번 또는 그보다 더 또는 덜 자주 확인해야 하지만 여전히 임의로 정의되지는 않음).
하지만... 대신 나중에 명령을 실행하고 싶을 수도 있습니다.지금, 이를 위해 나중에 실행되는 명령을 나중에 날짜/시간에 한 번 실행할 수 있는 데몬을 사용하려고 합니다 at
(5시이고 집에 가고 싶지만 4시간 프로세스를 갖는 것이 더 좋습니다). 한밤중에 다시는 이런 일이 발생하지 않습니다).
nohup
언급한 대로 즉시 실행하고 싶지만 나중에 확인하기 위해 세션에 다시 연결하고 싶지 않은 경우 screen
이것을 사용하십시오 . /나중에 확인하기 위해.tmux
nohup
screen
tmux
답변2
다음 두 가지 작업을 수행해야 합니다.
- 실행 명령을 사용하십시오
nohup
. 이렇게 하면 연결을 끊을 때 원격 컴퓨터가 명령을 종료하는 것을 방지할 수 있습니다. &
를 추가하여 백그라운드에서 명령을 실행합니다. 이는 꼭 필요한 것은 아니지만 정상적으로 연결을 끊거나 다른 작업을 수행할 수 있도록 명령을 차단하는 대신 셸로 돌아가게 됩니다.
따라서 명령의 경우 command
:
nohup command &
답변3
nohup
프로그램과 상호 작용하지 않고 프로그램을 실행할 수 있는 경우 이는 확실히 올바른 접근 방식입니다. 예를 들어 나중에 액세스할 수 있는 파일에 모든 출력 및 오류 메시지를 기록하는 경우입니다. 프로그램이 실행되는 동안 남겨진 오류 메시지가 있는지 파일을 확인하세요 nohup.out
. (수정해 주셔서 감사합니다, Michael!)
프로그램이 실행되는 동안 프로그램과 상호 작용해야 하는 경우,GNU 화면더 좋은 방법일 수도 있습니다. 로그아웃한 후에도 아무도 컴퓨터를 종료하지 않는 한 계속 실행되는 가상 터미널을 생성할 수 있습니다.이것은 튜토리얼입니다사용하다가 발견했습니다.