현재 실행중인 Linux 프로세스를 백그라운드에 배치하려면 어떻게해야합니까? [닫은]


111

git을 사용하여 Linux 셸에서 원격 서버로 파일을 업로드하는 명령이 있으며 완료하는 데 많은 시간이 걸립니다.

실행중인 프로그램을 백그라운드에 배치하려면 어떻게해야합니까? 그래도 셸에서 작업 할 수 있고 해당 프로세스도 완료됩니까?


추측이지만 ctrl + z를 사용하거나 다음과 같이 명령을 실행 했습니까? #command &
EralpB

명령이 이미 실행 중이므로 다른 옵션이 없습니다. 어떤 명령을 시도해야할지 모르겠습니다. 내가 그것을 실험을하지 않았다 그래서 나는 현재의 프로세스를 중단하고 싶어하지 않았다
미라지

우리는 더 전문적인 대답을 기다려야합니다. :) 다시 시작할 기회가 있다면 의미했습니다. (명령 및 일)
EralpB

이 질문에 허용 답변자는주의 할 필요가 세 단계에 대해 설명 stackoverflow.com/questions/625409/...
레너드 Saers

두 번째 퍼티 인스턴스를 열고 서버에 다시 연결하여 다른 셸을 얻을 수도 있습니다. 솔루션 ctrl+z은 훌륭 하지만 .
Ela782

답변:


207

CTRL + Z로 프로세스를 일시 중단 한 다음 명령 bg을 사용하여 백그라운드에서 다시 시작합니다. 예를 들면 :

sleep 60
^Z  #Suspend character shown after hitting CTRL+Z
[1]+  Stopped  sleep 60  #Message showing stopped process info
bg  #Resume current job (last job stopped)

매뉴얼 페이지의 작업 제어 및 bg사용에 대한 추가 정보 bash:

JOB CONTROL
타자가 일시 중지 문자 (보통 ^ Z, 제어-Z) 프로세스가 프로세스를 중지하고 반환 떠들썩한 파티를 제어하는 원인이 실행된다. [...] 사용자는 백그라운드에서 계속하기 위해 bg 명령을 사용하여이 작업의 상태를 조작 할 수 있습니다. [...]. ^ Z는 즉시 적용되며 보류중인 출력 및 자동 완성 기능이 삭제되는 추가 부작용이 있습니다.

bg [ jobspec ...] &로 시작된 것처럼 백그라운드에서
일시 중단 된 각 작업 jobspec 을 다시 시작합니다. 경우 jobspec이 존재하지 않는,의 쉘의 개념 현재 작업이 사용됩니다.

편집하다

터미널을 죽일 수도 있고 계속 실행되는 프로세스를 시작하려면

nohup [command] [-args] > [filename] 2>&1 &

예 :

nohup /home/edheal/myprog -arg1 -arg2 > /home/edheal/output.txt 2>&1 &

출력을 무시하려면 (현명하지 않음) 파일 이름을 다음과 같이 변경하십시오. /dev/null

오류 메시지를 다른 파일로 설정하려면을 파일 &1이름으로 변경하십시오 .

또한 jobs명령을 사용하여 백그라운드 프로세스의 색인화 된 목록을 볼 수 있습니다 . 그리고 실행 kill %1하거나 kill %2번호를 프로세스의 인덱스로 사용하여 백그라운드 프로세스를 종료 할 수 있습니다 .


나는 그것을 시도했지만 무언가를 출력하면서, 그것은 얼마나 많은 데이터가 업로드되었는지를 보여주는 %와 함께 다시 전경에옵니다
Mirage

프로세스는 시작시 프로세스에 지시 한대로 터미널에 출력을 기록합니다. 파일 또는 .NET Core에 쓸 출력을 얻으려면 다시 시작해야합니다 /dev/null. 위의 편집을 참조하십시오.
Ed Heal

즉, 프로세스가 이미 시작된 경우 출력을 리디렉션 할 방법이 없습니다
Mirage

네 확실합니다. 실행중인 쉘에만 프로세스에 영향을 줄 수 없습니다. a kill -9 <pid of your shell를 수행하면 프로세스가 계속 실행되고 출력이 삭제되지만 새 셸을 시작하려면 다시 로그인해야합니다.
Ed Heal

disown터미널 세션에서 로그 아웃하고 계속 실행하려는 경우 에도 명령 을 사용할 수 있습니다 .
kirk roerig
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.