2011-12-16 3 views
1

우분투 종료시 하나 이상의 명령과 스크립트를 실행하는 방법은 무엇입니까? 시스템 시작시/etc/profile과 ~/.bashrc와 같은 스크립트가 있습니까? 리눅스 종료에는 많은 이유가있을 수 있습니다. kill 신호를 처리하는 것 외에 어디에서받을 수 있습니까?우분투 종료시 명령

+1

하위 질문으로 인해 질문이 혼란 스럽습니다./etc/profile 및 ~/.bashrc는 시스템 시작시 실행되지 않고 사용자 로그인 및 쉘 시작시 실행됩니다. 그래서, 당신은 사용자 로그 아웃을 의미합니까 (~/bash_logout은 John Laine의 답변에서 암시 된 것입니까?)?또는 실제로 시스템 종료를 의미합니까? 이는 /etc/init.d ...에있는 스크립트와 유사하고 그러한 스크립트 옵션이있는 스크립트를 찾는 것을 의미합니다. –

+0

@ 카리나, 세부 사항과 관련하여 무엇을 찾고 계십니까? 특정 시스템 종료의 원인에 대한 세부 사항 또는 명령을 실행하기 위해 시스템 종료에 후크를 추가하는 방법에 대한 세부 사항? –

답변

2

우분투 11.04에서 로그 아웃 할 때 실행되는 ~/.bash_logout 파일이 있습니다. 확실하지는 않지만, 10.04에 유사한 스크립트가 있다고 가정하십시오. 희망이 있습니다.

+0

예, 10.04의 ~/.bash_logout과 동일한 스크립트입니다. – user379997

+0

이것은 유용한 조언이지만 정확히 OP가 묻는 것은 아닙니다. 사용자 로그 아웃은 시스템 종료와 동일하지 않습니다. –

3

시스템 시작시/etc/profile 및 ~/.bashrc와 같은 스크립트가 있습니까?

시작시 SysV Init 스크립트 (/etc/init.d/*)가 호출됩니다. 시스템 시작시 일부 활동을 호출하는 간단하고 쉬운 방법은 /etc/init.d/local (다른 일부 배포판의 경우 /etc/rc.local)에 넣는 것입니다. 참조 : RcLocalHowto.

우분투 종료시 하나 이상의 명령과 스크립트를 실행하는 방법은 무엇입니까?

그것은 당신이 그들을 종료에 실행 레벨의 X-Z 및 stop PED를 입력에 start 에드을 유도 할 수있는 실제 init 스크립트를 작성하려는 것처럼 들린다. 참조 : UbuntuBootupHowto.

저는 리눅스 종료가 많은 이유가있을 수 있습니다. 킬 신호를 처리하는 것 외에 어디에서받을 수 있습니까?

비 대화식으로 수행하는 것은 쉽지 않습니다. shutdown에서 표시를 찾고 시스템 로그를 통해 grep 할 수 있습니다.

2

/etc/rc0.d (정지) 및 /etc/rc6.d/(재부팅)에 스크립트를 넣을 수 있습니다. 스크립트에 실행 권한이 있는지 확인하십시오.

differents의 실행 수준이 있습니다 :
* 0 시스템 정지
* 1 단일 사용자
* 2 전체 다중 사용자 모드 (기본값)
* 3-5 동일한 시스템 재부팅
* 6 2 등은

실행 수준 0은 시스템 중지 조건입니다. 실행 수준 0에 도달하면 /etc/rc0.d에있는 모든 스크립트가 실행됩니다.

실행 수준 6은 시스템 재부팅을 알리는 데 사용됩니다. 이는 전원이 꺼지는 대신시 v 스의 끝에서 재부트가 _ 행되는 것을 제외하고 실행 레벨 0과 같습니다.

#!/bin/sh 

WLANSTATUS=`cat /sys/class/ieee80211/phy*/rfkill*/state` 
test -z $WLANSTATUS && exit 1 

case $1 in 
    hibernate) 
     # Do something before hibernate 
     ;; 
    suspend) 
     # Do something before sleep 
     ;; 
    thaw) 
     # Do something after hibernate 
     ;; 
    resume) 
     # Do something after sleep 
    if [ $WLANSTATUS = 0 ]; then 
     echo 0 > /sys/devices/platform/asus_laptop/wlan  
    elif [ $WLANSTATUS = 1 ]; then 
     echo 1 > /sys/devices/platform/asus_laptop/wlan 
    fi 
     ;; 
    *) echo "somebody is calling me totally wrong." 
     ;; 
esac 

재밌게 : 최대 절전 또는 수면에 스크립트를 실행하려면

는이 스크립트의 예입니다 /etc/pm/sleep.d/

에 스크립트를 넣어 !