내 프로젝트에서 프로세스가 특정 메시지를 받으면 응용 프로그램에 저장되지 않은 데이터가 있더라도 KDE 데스크탑을 강제로 로그아웃하는 스크립트를 실행합니다.
Google에서 검색한 결과 다음 명령이 나왔습니다.
qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout 0 0 2
위 명령은 로그아웃을 차단하는 응용 프로그램이 없는 경우에도 제대로 작동합니다. 그러나 일부 응용 프로그램에 저장되지 않은 데이터가 있는 경우 해당 응용 프로그램은 "kwrite" 응용 프로그램과 같이 로그아웃을 방지하기 위한 대화 상자를 표시합니다.
나는 KDE 문서를 참조합니다:
http://git.net/ml/kde-users/2014-03/msg00040.html
org.kde.KSMServerInterface.logout에 전달된 세 번째 매개변수 "2"는 "kwrite" 응용 프로그램이 대화 상자를 표시하는 대신 즉시 종료되어야 함을 의미하는 것 같습니다. 그러나 이것은 작동하지 않습니다.
세 번째 매개변수 "2"가 왜 작동하지 않는지 아는 사람이 있나요? "kwrite" 응용프로그램이 저장되지 않은 날짜로 실행되고 있는데 KDE를 강제로 로그아웃시키는 방법은 무엇입니까?
내 KDE 버전은 kdebase-workspace-4.3.4-30.el6_6.x86_64이고 배포판은 CentOS 6.7입니다.
답변1
우아함이 필요하지 않다면 이것을 사용해보십시오 killall -9 plasma-desktop
. 프로세스 이름을 조정해야 할 수도 있습니다.
활성 KDE 세션을 사용하는 사용자가 여러 명인 경우 이에 주의하십시오. 및 같은 것을 평가하여 ps aux | grep plasma-desktop | grep $USER | awk '{print $2}'
변수의 PID를 수정하는 것이 좋습니다 kill -9 $PID
.