데스크톱 사용자에게 벽면 메시지를 표시하는 방법이 있습니까?


9

집에 떨어져 집에있는 컴퓨터에서 ssh-ing을한다고 가정 해 봅시다. 어떤 이유로 든 재부팅해야합니다.

# shutdown -r +10

이 기능은을 통해 1 분마다 경고 메시지를 전송하는데 wall, 부모님이 데스크톱을 정상적으로 사용하는 경우 완전히 보이지 않습니다.

wall예를 들어 알림을 통해 메시지가 데스크탑에 도달 할 수 있는 방법이 있습니까?


1
이 게시물에 대한 답변 정보로 인해 필요한 것을 수행하는 Python 프로그램을 함께 해킹 할 수 있습니다. libnotify-bin패키지 에 따라 다릅니다 .
badp

답변:


8

내부 wall및 차단이 너무 오래되어 메시지가 도착하면 메시지를 가져올 수있는 방법이 없습니다.

이것에 대한 유일한 실제 아이디어 ( 문제는 전에 여러 번 논의되었습니다 )는 dbus를 통해 무언가를 사용할 수 있도록 shutdown또는 reboot스크립트 를 변경 하거나 (우리는 하나의 컴퓨터와 하나의 수정 만 처리하므로) 알림 전송 메시지를 보내십시오.

그것들 단지 스크립트이므로 해킹 할 수 있습니다. 그러나 나는 이것이 추진해야 할 가치가 있다고 생각합니다. Ubuntu에 버그를 제출하고 패치를 추가하십시오 (X 환경이없는 경우 알림을 보내지 않아도 작동 할 수 있음). 우리가 필요로하는 것은 이런 종류의 유용성입니다.

전에는 들어 본 적이 gxmessage없지만을 사용 notify-send합니다.

전체 솔루션을 사용하면 여러 디스플레이 (예 : 멀티 헤드, 원격 사용자 등)의 가능성을 충족시켜야하지만 어쨌든 어제 해당 비트에 대한 코드를 작성했습니다.

for display in `ps aux | grep -oE "/usr/bin/X\s[^ ]+" | cut -d " " -f 2`; do
    DISPLAY=$display notify-send -u critical 'Shutdown notice' 'Save all your work. THE SYSTEM IS GOING DOWN!!' -i /usr/share/pixmaps/gnome-computer.png
done

(나는 그것이 걸리는 것을 모르기 때문에 -display또는 --display플래그 대신 내보내기를 사용 하고 notify-send있습니다)


gxmessage는 고대 앱입니다. 그것을 dbus 생각하고 통지 보내기는 훨씬 더 나은 옵션입니다. 어쩌면 나는 zenity로 뭔가를 해결할 수 있습니다.
tinhed

그래, 최선이 무엇인지 잘 모르겠습니다. zenity로그 아웃하기 전에 항목을 저장하도록 스크램블하는 경우 경고가 성 가실 수 있습니다 ... 그러나 notify-send알림은 무시 될 수 있습니다.
Oli

1
알림 전송 알림은 무시할 수 있지만 몇 번 (예 : 10 분) 표시되면 작업을 수행 할 수 있습니다!
OpenNingia

@Oli 그러나 이것이 작동하려면 XAUTHORITY 환경 변수가 올바르게 설정되어 있어야합니다.
badp

1
DISPLAY=$display notify-send...해당 명령에 대한 해당 DISPLAY 값만 내 보냅니다. 여기서 중요하지는 않지만 다른 곳에서는 유용하며 IMHO는 약간 더 깨끗합니다.

2

zenity를 사용하여 수동으로 메시지를 보낼 수 있습니다

zenity --warning --text "badp's about to restart the computer" --display=:0

물론 이것을 스크립트에 포함시킬 수 있습니다.


수퍼 유저 인 경우에도 디스플레이를 열 수 없습니다 (올바른 사용자로 sudo해야 함) :(
badp

당신이 (거기에 콜론있어 - 수 있어야 =:0하지 =0)
misterben

XAUTHORITY 환경 변수를 올바르게 설정해야합니다.
badp

1

ptty로서 crate로 작성하고 작성된 메시지 (쓰기 또는 벽에서)를 수신 한 다음이를 GUI 출력으로 전달하는 스크립트를 작성할 수 있어야합니다.


0

AFAIK는 wall 명령이 그래픽 환경에서 이러한 메시지를 표시하는 X 클라이언트가 없습니다. 팝업을 표시하기 위해 gxmessage 앱을 사용할 수 있지만 스크립트를 직접 작성해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.