git을 사용하여 Linux 셸에서 원격 서버로 파일을 업로드하는 명령이 있으며 완료하는 데 많은 시간이 걸립니다.
실행중인 프로그램을 백그라운드에 배치하려면 어떻게해야합니까? 그래도 셸에서 작업 할 수 있고 해당 프로세스도 완료됩니까?
ctrl+z
은 훌륭 하지만 .
git을 사용하여 Linux 셸에서 원격 서버로 파일을 업로드하는 명령이 있으며 완료하는 데 많은 시간이 걸립니다.
실행중인 프로그램을 백그라운드에 배치하려면 어떻게해야합니까? 그래도 셸에서 작업 할 수 있고 해당 프로세스도 완료됩니까?
ctrl+z
은 훌륭 하지만 .
답변:
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
번호를 프로세스의 인덱스로 사용하여 백그라운드 프로세스를 종료 할 수 있습니다 .
/dev/null
. 위의 편집을 참조하십시오.
kill -9 <pid of your shell
를 수행하면 프로세스가 계속 실행되고 출력이 삭제되지만 새 셸을 시작하려면 다시 로그인해야합니다.
disown
터미널 세션에서 로그 아웃하고 계속 실행하려는 경우 에도 명령 을 사용할 수 있습니다 .