로그인하지 않은 상태에서 bash 스크립트를 원격 터미널에서 계속 실행합니까?


14

실행하는 데 몇 시간이 걸리는 bash 스크립트가 있습니다. 그것이 실행되는 동안 인터넷에서 로그 아웃하거나 연결을 끊을 수있는 다른 일을하고 싶습니다 (내 스크립트는 다양한 컴퓨터에서 네트워크 테스트를 실행합니다).

원격 터미널에서 테스트를 실행하고 터미널이 실행되는 동안 로그 아웃 할 수있는 명령이 있다는 것을 알고 있습니다. 이 명령이 무엇인지 아는 사람이 있습니까?

답변:


17

찾고있는 명령은 nohup입니다.

또한 screen실행중인 것을 남기고 나중에 다시 대화 형으로 다시 연결하려는 경우를위한 것입니다.

nohup명령을 실행 한 후 사용자 입력이 없을 경우 명령이 더 간단 screen하고 프로그램을 대화식으로 실행할 수 있으면 더 좋습니다.


나는 지금 nohup을 보았고 분명히 입력 및 출력에 문제가있어 스크립트가 중단 될 수 있습니다. 나는 또한 스크린에 관한 것을 보았습니다. 이 중 하나를 사용하는 방법을 알고 있습니까?
Ritwik Bose

1
nohup은 스크립트가 사용자 입력을 기대하지 않는 경우를위한 것입니다. 모든 출력을 파일에 저장합니다. 화면은 실행중인 것을 남기고 나중에 다시 대화 형으로 다시 연결하려는 경우를위한 것입니다. nohup은 명령 실행 후 사용자 입력이 없을 것으로 예상되면 더 간단하며 프로그램을 대화식으로 실행하려면 화면이 더 좋습니다.
저스틴 스미스

아 알았다. 화면의 경우 Ctrl-A d로 분리하고 -r + pid로 다시 부착합니다.
Ritwik Bose

좋은 대답입니다. 답변을 추가하려면 화면 설명을 추가해야합니다.
DaveParillo

1

나는 이것을 위해 사용 nohup합니다. 내 경우에는 이름이 python 스크립트 인 action.py 원격 서버에서 스크립트를 실행 nohup python action.py & 한 다음 터미널을 닫았습니다. 나중에 실행이 끝나면와 nohup.out같은 디렉토리에 생성 될 프로세스의 모든 출력을 볼 수 있습니다 action.py. 파일이 이미 존재하면 추가 출력이 추가됩니다.

유일한 걸림돌은 언제 스크립트가 진행되었는지 알지 못하기 때문에 제 경우에는 완료되면 이메일을 보내도록했습니다. 이것이 누군가를 도왔기를 바랍니다!


0

nohup명령 시작시 명령 을 추가하지 않은 경우 어떻게됩니까 ?

다음과 같은 Long Command를 실행했다고 가정하겠습니다.

긴 명령의 출력 시작

ls -Ral /루트 폴더에서 재귀 적으로 시작하는 긴 형식으로 숨겨진 파일을 포함한 모든 파일과 모든 폴더를 나열하기 위해 호출됩니다 . 시간이 걸릴 수 있습니다.

ctrl+를 누르면 Z됩니다.

긴 명령 중지

어떻게 되 찾을 수 있습니까?

다시 포 그라운드로 가져 오는 명령은 fg입니다.

명령을 다시 가져 오기

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.