다음 스크립트가 있습니다.
#!/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는 단일 활성 사용자 세션에 대한 액세스를 제한합니다. 이 문제를 해결하는 방법에는 여러 가지가 있습니다.
- 사용
export DISPLAY=:0
및sudo your_currentuser notification_command
xhost +SI:localuser:remoteUser
remoteUser
X 응용 프로그램이 세션에서 실행 되도록 하려면 사용자 세션에서 실행하세요 . 스크립트에서 여전히 사용해야 합니다.export DISPLAY=:0
추가 정보: