백그라운드에서 "apt-get install"을 어떻게 실행할 수 있습니까?


17

명령 을 사용하여 패키지 (예 : nsnake) 를 설치하려고 sudo apt-get install nsnake &하면 프로세스가 즉시 중지됩니다. 포 그라운드로 가져 와서 sudo 비밀번호를 입력하고 일시 중지 ( Ctrl-사용 Z) 한 후 다시 백그라운드로 보낼 수 있습니다. 그러나 쉘은 즉시 프로세스를 일시 중지합니다.

katriel@caseylaptop:~$ bg     
[2]+ sudo apt-get install nsnake &   
[2]+  Stopped                 sudo apt-get install nsnake

백그라운드에서 패키지를 설치할 수 있습니까? SSH를 사용하는 컴퓨터에 큰 패키지를 설치하는 동안이 작업을 수행 할 수 있습니다.

답변:


30

물론이지.

주변의 멋진 것들로 apt-get명령 수행하십시오.

sudo bash -c 'apt-get -y install guake >/dev/null 2>&1 & disown'

부품 설명 :

  • sudo bash -c부분은 급부상 새로운 bash프로세스를하고 실행 apt-get -y install guake >/dev/null 2>&1 & disown하는 새로운 쉘 내부.

  • 그런 다음이 명령은 새로운 서브 쉘 내에서 실행됩니다.

    • apt-get -y install guake: 실행하려는 기본 apt-get 명령

      • >/dev/null 2>&1 stdout 및 stderr을 / dev / null로 파이프합니다.
    • & disown 선행 작업을 제거하고 서브 쉘을 종료합니다.

"예 |"입니까 -y 스위치를 사용할 때 필요합니까?
user31389

@ user31389 : 엄격하지는 않지만 설치 중에 패키지에 추가 프롬프트가 표시되면 도움이 될 수 있습니다.
kiri

왜 이것이 작동하는지 (그리고 왜 필요한지) 이해하는 것이 좋을 것입니다.
katriel

@ katriel : 설명하기가 쉽지 않습니다. 그래도 대답에 설명을 시도했습니다.
kiri

1
@katriel : Ctrl + Z 가 명령을 일시 정지 하기 때문에 일시 정지 (일시 중지) 되기 때문 입니다.
kiri

17

저는 항상 화면 을 사용 하여 백그라운드에서 프로그램을 실행하고 싶습니다 .


2
화면 +1 irc 클라이언트와 같이 수시로 액세스하려는 백그라운드 프로그램이나 경로 나 파일 세트에 빠르게 반복적으로 액세스해야하는 경우 여러 ssh 연결을 대신하는 백그라운드 프로그램에 사용하기 쉽고 훌륭합니다.
Pichan

4
이 이론적으로 질문에 대답 할 수 있습니다 동안, 바람직 할 것이다 여기에 대한 대답의 본질적인 부분을 포함하고 참조 할 수 있도록 링크를 제공합니다.
blade19899

1
화면 보다 tmux 를 선호합니다 .
Michael

9

앰퍼샌드를 추가 &실행할 수 있는 등 동안 프로그램이 실행을, 프로그램을하고 프롬프트로 돌아갑니다

sudo apt-get -y install nsnake &

그러나 셸에서 특정 이벤트 및 알림이 주기적으로 표시 될 수 있습니다. 이러한 이벤트를 숨기려면 STDOUT으로 파이프하십시오.

sudo apt-get -y install nsnake >/dev/null &

1
사건은 문제였다. 해결책은 STDOUT에 파이프하는 것 같습니다.
katriel

-1

해결 방법이지만 먼저 sudo로 무엇이든 실행하십시오 (예 :) sudo ls. 당신의 sudo 인증은 잠시 동안 기억 될 것입니다. 그런 다음 바로 실행할 수 있으며 sudo apt-get -y install nsnake &두 번째 시간 동안 암호를 묻지 않습니다 (일부 시간이 지났고 인증이 만료되지 않은 경우).


프롬프트에서 여전히 y를 입력해야합니다.
kiri

아, 맞아. 결정된.
user31389

작업을 포 그라운드로 가져 오더라도 수행 할 필요가 없으므로 sudo 권한 부여 나 "Y / n"프롬프트가 방해가되지 않습니다.
katriel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.