
저는 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 화면그것에 대해 더 좋은 방법이 될 수 있습니다. 로그아웃한 후에도 아무도 컴퓨터를 종료하지 않는 한, 그 안에서 시작한 모든 프로그램과 함께 계속 실행되는 가상 터미널을 생성할 수 있습니다.여기 튜토리얼이 있습니다사용하다 발견했습니다.