원격으로 지속적으로 작업 실행

원격으로 지속적으로 작업 실행

저는 Linux를 처음 접했고 상당히 기본적인 질문을 할 수도 있습니다. Linux에서 연속 프로그램을 실행하는 방법은 무엇입니까?

기본적으로 웹사이트의 내용을 지속적으로 확인하는 프로그램이 있습니다. 이 계획은 며칠 동안 시행될 예정입니다. 나는 이 프로그램을 실행하려는 컴퓨터에 대한 관리 권한이 없으며 이 컴퓨터에 대한 독점적인 액세스 권한도 없습니다. 즉, 다른 사용자가 물리적으로 로그인할 수 있습니다. 게다가 예상치 못한 재난이 발생하지 않는 한, 컴퓨터는 내 프로그램이 실행되는 동안 계속해서 실행될 것입니다.

나는 기계에 SSH로 접속하여 프로그램을 실행할 수 있다는 것을 알고 있습니다. 그러나 시간 초과 문제는 말할 것도 없고 이를 완료하려면 두 번째 컴퓨터가 필요하기 때문에(이는 내가 하고 있는 작업의 목적을 무너뜨리기 때문에) 바람직하지 않습니다.

시작 후 연결을 설정하지 않고도 컴퓨터에서 원격으로 프로그램을 실행할 수 있는 방법이 있습니까?

답변1

정기적으로 발생해야 하는 일인 경우 사용합니다 cron(예: 사이트를 매시간, 하루에 한 번 또는 그보다 더 또는 덜 자주 확인해야 하지만 여전히 임의로 정의되지는 않음).

하지만... 대신 나중에 명령을 실행하고 싶을 수도 있습니다.지금, 이를 위해 나중에 실행되는 명령을 나중에 날짜/시간에 한 번 실행할 수 있는 데몬을 사용하려고 합니다 at(5시이고 집에 가고 싶지만 4시간 프로세스를 갖는 것이 더 좋습니다). 한밤중에 다시는 이런 일이 발생하지 않습니다).

nohup언급한 대로 즉시 실행하고 싶지만 나중에 확인하기 위해 세션에 다시 연결하고 싶지 않은 경우 screen이것을 사용하십시오 . /나중에 확인하기 위해.tmuxnohupscreentmux

답변2

다음 두 가지 작업을 수행해야 합니다.

  1. 실행 명령을 사용하십시오 nohup. 이렇게 하면 연결을 끊을 때 원격 컴퓨터가 명령을 종료하는 것을 방지할 수 있습니다.
  2. &를 추가하여 백그라운드에서 명령을 실행합니다. 이는 꼭 필요한 것은 아니지만 정상적으로 연결을 끊거나 다른 작업을 수행할 수 있도록 명령을 차단하는 대신 셸로 돌아가게 됩니다.

따라서 명령의 경우 command:

nohup command &

답변3

nohup프로그램과 상호 작용하지 않고 프로그램을 실행할 수 있는 경우 이는 확실히 올바른 접근 방식입니다. 예를 들어 나중에 액세스할 수 있는 파일에 모든 출력 및 오류 메시지를 기록하는 경우입니다. 프로그램이 실행되는 동안 남겨진 오류 메시지가 있는지 파일을 확인하세요 nohup.out. (수정해 주셔서 감사합니다, Michael!)

프로그램이 실행되는 동안 프로그램과 상호 작용해야 하는 경우,GNU 화면더 좋은 방법일 수도 있습니다. 로그아웃한 후에도 아무도 컴퓨터를 종료하지 않는 한 계속 실행되는 가상 터미널을 생성할 수 있습니다.이것은 튜토리얼입니다사용하다가 발견했습니다.

관련 정보