it-swarm-ko.tech

작업이 완료된 후 컴퓨터를 종료하는 방법은 무엇입니까?

학교에 가기 전에 보통 다운로드를 시작합니다.
특정 작업이 완료된 후 필요한 저장을 자동으로 수행하고 컴퓨터를 끄려면 어떤 명령을 사용해야합니까?
(업데이트 설치 후 또는 큰 파일 다운로드 후)

또한 askubunt 에 교차 게시되었습니다.

27
El Burro

시작한 작업에 따라 다릅니다. 명령 행 도구 인 경우 halt 또는 shutdown -h now :

  1. wget http://..../somelargefile; halt-haltwget 이후에 실행됩니다.

  2. wget http://..../somelargefile && halt-haltwget이 오류를 반환하지 않으면 실행됩니다.

  3. wget http://..../somelargefile || halt-haltwget에서 오류를 반환하면 실행됩니다

이에 대한 대안은 kshutdown를 사용하는 것입니다-이 앱에서 수행 할 작업 (재부팅/종료/최대 절전 모드/등 또는 명령 실행) 및시기 (시간 후 또는 다른 응용 프로그램 종료시)를 지정할 수 있습니다. 이 도구를 사용하려면 올바른 프로세스를 선택해야합니다. 일부 업데이트 유틸리티는 몇 개의 하위 프로세스를 시작합니다.

KShutdown

26
pbm

모든 프로세스에는 proc 파일 시스템의 프로세스 ID (pid)에 따라 이름이 지정된 디렉토리가 있습니다. 따라서 디렉토리가 반복적으로 존재하는지 확인하여 특정 프로세스가 종료 될 때까지 기다릴 수 있습니다.

이것을 사용하여 다음과 같이 프로세스 종료 후 시스템 종료를 수행 할 수 있습니다 (기다리는 pid로 2296을 대체하십시오).

su -c 'while [[ -d /proc/2296 ]]; do sleep 1; done; poweroff'

장점 :

  • Shell 명령을 해제 한 후 종료 여부를 결정할 수 있습니다
  • 종료는 root로 발행되며 대기 명령은 반드시 root로 수행 될 필요는 없습니다 (늦은 Sudo- password 프롬프트를 해결할 필요가 없음).

단점 :

  • 프로세스가 종료되고 OS가 2 초 내에 새로 생성 된 프로세스에 대해 동일한 pid를 재사용 할 수 있습니다 (레이스 조건). 따라서 새 프로세스가 종료 될 때까지 계속 기다립니다.
19
moooeeeep

&&|| 연산자는 명령을 서로 연결합니다. 예를 들면 다음과 같습니다.

apt-get update && sleep 2 && init 0

aptitude를 사용하여 시스템을 업데이트하고 2 초간 기다렸다가 시스템에 따라 실제로는 시스템 전원을 끄지 않을 수도있는 런레벨 0으로 이동합니다.

아마도 웹 브라우저와 같이보다 임의의 작업을 수행 한 후 하나 이상의 작업을 수행하려면 다운로드 파일을보고 다운로드가 실제로 완료되었는지 확인하기 위해 추가 논리가 필요하지만 셸 논리는 변경되지 않습니다.

3
Tok

이미 시작된 프로세스를 모니터링하려는 경우 Shell 에서 수행 할 수 있습니다.

# while pgrep &>/dev/null -f process_name; do sleep 60; done; shutdown -h now
3
Gilles Quenot

Sentinella라는 이름의 응용 프로그램이 있으며 GUI를 통해이를 수행 할 수 있습니다. sentinella

그것을 설치하기 위해 :

Sudo aptitude update
Sudo aptitude install sentinella
1
shgnInc