Awesome WM에서 정상적으로 다시 시작/종료하는 방법은 무엇입니까?

Awesome WM에서 정상적으로 다시 시작/종료하는 방법은 무엇입니까?

내 거현재 구성사용

kdesu shutdown -[rh] now

다시 시작/종료. 전체 종료 프로세스는 약 1-2초 정도 소요됩니다. 그러나 파이어폭스는 출시 후 매번 조기 종료됐다고 밝혔는데, 이는 파이어폭스가 ​​휴식을 취하기보다는 잔인하게 살해됐음을 의미할 가능성이 크다. "정상적인" WM 종료 절차를 구성하는 방법( 와 유사 kill -SIGTERM && sleep 10 && kill -SIGKILL하지만 사용하는 것이 더 좋음)기존 도구) 멋진 WM에서?

GDM 관련 문제.

답변1

wmctrl도움이 될 수 있습니다(패키지 이름 wmctrl).

wmctrlEWMH/NetWM 호환 X Window Manager와 상호 작용하는 데 도움이 됩니다. AwesomeWM이 이 설명에 맞는지 확실하지 않지만 그렇다면 이 답변이 작동합니다.

$ wmctrl -l
0x0100002d  1 stewbian arch linux - How to reboot/shut down gracefully in Awesome WM? - Unix & Linux Stack Exchange — Mozilla Firefox
0x01200007  0 stewbian ~ : bash — Konsole
$ wmctrl -c 0x01200007

wmctrl -l모든 창을 나열하고( ), 목록을 반복하고, 각 창을 닫는( ) 스크립트를 작성할 수 있습니다 wmctrl -c. 완료되면 닫습니다.

#!/bin/bash

wmctrl -l | awk '{ print $1 }' | while read -r windowid; do
  wmctrl -c $windowid
done

shutdown -h now

그래도 작동하지 않으면 wmctrl상위 프로세스의 PID를 가져와서 kill각 PID에 신호( )를 보낼 수 있습니다.

#!/bin/bash
pids=$(wmctrl -lp | awk '{print $3}')
kill -SIGTERM $pids
sleep 2

pids=$(wmctrl -lp | awk '{print $3}')
kill -SIGKILL $pids
sleep 2

shutdown -h now

프로세스별로 분할할 수도 있습니다. 제목 표시줄에 Firefox가 있는 창에 SIGTERM을 보낼 수 있지만 SIGINT를 QtCreator의 인스턴스에 보낸 다음 SIGABRT를 Firefox 및 QtCreator(아직 존재하는 경우)를 포함한 다른 모든 항목에 보낼 수 있습니다.

#!/bin/bash
pids=$(wmctrl -lp | awk '/Firefox/{print $3}')
kill -SIGTERM $pids

pids=$(wmctrl -lp | awk '/Qt Creator/{print $3}')
kill -SIGINT $pids

sleep 10

pids=$(wmctrl -lp | awk '{print $3}')
kill -SIGABRT $pids

shutdown -h now

답변2

세션을 순서대로 종료할 수도 있습니다. SuperUser의 이 답변은 트릭을 수행하는 것 같습니다. https://superuser.com/questions/395820/how-to-properly-end-a-kde-session-from-shell-without-root-privileges

관련 정보