작업이 완료된 후 컴퓨터를 종료하는 방법은 무엇입니까? 자동으로 수행하고

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

나는 또한 askubuntu에 교차 게시했습니다 .



답변

시작한 작업에 따라 다릅니다. 그것은 몇 가지 명령 줄 도구 인 경우 당신은 간단하게 실행할 수 있습니다 halt또는 shutdown -h now:

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

  2. wget http://..../somelargefile && halt– 오류가 halt없으면 wget반환됩니다

  3. wget http://..../somelargefile || halt– 반환 오류가 발생 halt하면 실행됩니다wget

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

K 셧다운


답변

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

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

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

장점 :

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

단점 :

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

답변

&&||연산자를 사용하여 명령을 함께 연결할 수 있습니다 . 예를 들면 다음과 같습니다.

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

aptitude를 사용하여 시스템을 업데이트하고 2 초 동안 기다린 후 시스템에 따라 실제로는 시스템 전원을 끄지 않을 수도 있습니다.

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


답변

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

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


답변

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

그것을 설치하기 위해 :

sudo aptitude update
sudo aptitude install sentinella


답변