2011-09-28 3 views
4

xfce 세션이 중지되면 스크립트/명령을 실행할 수 있습니까?xfce 세션이 끝날 때 스크립트를 실행하는 방법

+0

당신이 시도 할 수 있습니다 : 내가 본 http://stackoverflow.com/questions/5033354/run-script-before-bash-exits – maialithar

+0

이 질문도 있지만, 내가 시작할 스크립트에 대해서는 "endscript"라고 부릅니다. 실제로 xfce-session이 스크립트 인 경우 컴파일 할 수 있지만 컴파일 된 프로그램 –

답변

2

xfce4-sessionxfce4-session이 완료되면 로그 아웃 스크립트를 실행하는 쉘 스크립트로 /usr/bin/xfce4-session 실행 파일을 변경하십시오.

# mv /usr/bin/xfce4-session /usr/bin/xfce4-session.orig 

새로운 /usr/bin/xfce4-session 파일 :

#!/bin/bash 
/usr/bin/xfce4-session.orig 
echo "my logout script" > /tmp/testfile 

실행 권한 설정하는 것을 잊지 마십시오

# chmod a+x /usr/bin/xfce4-session 

(데비안 짜기에 테스트.)

+1

배포 이진 파일에 영향을주지 않는 솔루션을 선호했을 것이므로 대답을 받아 들였습니다. –

+2

http://mail.xfce.org/pipermail/xfce/2012-November/031694.html을 참조하십시오. 즉, 래퍼 스크립트를/usr/local/bin 또는 dir 앞에있는 다른 dir에 넣을 수 있습니다. xfce4-session/usr/bin/X11/xfce4-session을 변경하지 마십시오. 완벽하지는 않지만 (PATH 순서에 따라 다름) 더 맛있을 수도 있습니다. – djb

+0

이 제안에 대한 답변을 추가했습니다. thanks @palacsint – djb

0

난을 검증을 새로운 코드 작성을 필요로하지 않기 때문에 위의 답변을 참조하십시오. 그러나 진행할 다른 방법을 찾았습니다 : 세션 시작시 시작할 X11 프로그램을 만듭니다. X 세션이 닫힐 때 사용자 지정 스크립트를 실행할 수 있습니다.

참고 : 단점은 사용 된 스크립트가 X에 연결할 수 없다는 것입니다 이 솔루션은 필요에 따라 스크립트를 너무 늦게 실행할 수 있습니다.

+0

시작 스크립트가 세션 종료의 사례를 처리하는 방법은 무엇입니까? 즉, 신호를 잡아서 X 이벤트에 응답해야합니까? – djb

+0

실제 xfce 세션이 끝나면 원하는 것을 할 수 있습니다. 스크립트가 스크립트를 시작한 다음 종료 할 때까지 차단해야합니다. –

3

http://mail.xfce.org/pipermail/xfce/2012-November/031694.html 참조 -이, 에릭 Habicht은 /usr/local/bin/xfce4-session의 래퍼 스크립트 (또는 xfce4-session이 당신의 PATH에, /usr/bin을 설치되어있는 디렉토리 앞에 다른 디렉토리)를 만드는 제안했다. 이렇게하면 /usr/bin/X11/xfce4-session을 변경할 필요가 없으므로 독립적으로 업데이트 할 수 있습니다.

#!/bin/bash 
# Add your own pre-session logic here 
/usr/bin/xfce4-session 
# Add your own logout logic here 

$ chmod +x /usr/local/bin/xfce4-session 

이 (PATH 순서에 따라 다름) 완벽 하진하지만 더 맛이있을 수 있습니다.

(참고 : 나는 대답에 내 의견을 승진합니다.)

+0

마지막으로 xfce 로그 아웃 후크 용 솔루션입니다. 감사합니다. ... 아마 다시 "chmod a + x/usr/local/bin/xfce4-session"이라는 힌트를 추가하면 놓친다. xfce 버그/기능 요청을 열어 자동으로 간단한 ~ /를 실행합니다.로그 아웃 – Alex

+0

하나 남은 문제 : 솔루션은 명시 적으로 "로그 아웃"이 완료된 경우에만 작동하는 것처럼 보입니다. 시스템을 직접 종료하면 .logout 스크립트가 실행되지 않습니다. (디스트리뷰트 : Jessie의 데비안) – Alex

+0

감사합니다. chmod를 추가했습니다. – djb