다른 사용자로 실행되는 스크립트에 대한 데스크탑 알림을 표시하기 위해 전송된 알림

다른 사용자로 실행되는 스크립트에 대한 데스크탑 알림을 표시하기 위해 전송된 알림

다음 스크립트가 있습니다.

#!/bin/sh

notificationMessage="Your session is going to expire soon"
if [ $# == 2 ]; then
  notificationMessage="Your session is going to expire in $2 hour"
fi

# echo "$notificationMessage"

sudo -u userA notify-send "Session Expiration Notification" "$notificationMessage" -u normal -t 10000

터미널에서 위 스크립트를 실행하면(다음으로 로그인됨)원격 사용자),사용자A화면에서 알림을 볼 수 있는 기능. 그러나 스크립트가 서비스에서 실행되는 경우(다음으로 실행)원격 사용자), 알림이 표시되지 않습니다사용자A.

내가 뭘 잘못했나요?

참고: 원격 사용자에게는 sudo권한이 있습니다.

답변1

그러나 서비스에서 스크립트를 실행하는 경우(RemoteUser로 실행) userA에게는 알림이 표시되지 않습니다.

기본적으로 X.org는 단일 활성 사용자 세션에 대한 액세스를 제한합니다. 이 문제를 해결하는 방법에는 여러 가지가 있습니다.

  1. 사용 export DISPLAY=:0sudo your_currentuser notification_command
  2. xhost +SI:localuser:remoteUserremoteUserX 응용 프로그램이 세션에서 실행 되도록 하려면 사용자 세션에서 실행하세요 . 스크립트에서 여전히 사용해야 합니다.export DISPLAY=:0

추가 정보:

관련 정보