내 컴퓨터에는 sudo 권한을 가진 사용자인 나(user1)라는 두 명의 사용자가 있습니다. 나는 사용자 2가 12시에 kde 세션에서 로그아웃하여 사용자가 이를 차단할 수 없도록 하고 나중에 로그인할 때 모든 앱이 거기에 있도록 하길 원합니다.
user2, me 및 root로 cron을 사용해 보았습니다.
00 12 * * * qdbus org.kde.ksmserver /KSMServer logout 0 0 0
나는 또한 이와 같이 루트로 cron을 실행해 보았습니다.
00 12 * * * user2 qdbus org.kde.ksmserver /KSMServer logout 0 0 0
둘 다 직업이 없어
답변1
GUI와 독립적으로 실행 DISPLAY
되도록 변수를 설정 해야 합니다 .cron
00 12 * * * user2 DISPLAY=:0 qdbus org.kde.ksmserver /KSMServer logout 0 0 0
답변2
@FelixJN 글쎄요, 어떻게 해서든 @224843 계정의 비밀번호와 이메일을 잃어버렸습니다. 계속하겠습니다.
echo $DISPLAY
나에게는 :0
qbus에 전체 경로를 추가해도 문제가 해결되지 않았지만 검색해 보니 journalctl
다음과 같습니다.
CROND[2332]: (user2) CMD (DISPLAY=:0 qdbus org.kde.ksmserver /KSMServer logout 0 0 0)
CROND[2331]: (user2) CMDOUT (Could not connect to D-Bus server: org.freedesktop.DBus.Error.NotSupported: Using X11 for dbus-daemon autolaunch was disabled at compile time, set your DBUS_SESSION_BUS_ADDRESS instead)
CROND[2331]: pam_unix(crond:session): session closed for user user2
이것은 내가 사용할 때만 발생합니다. sudo crontab -u user2 -e
사용하면 /etc/crontab
로그에 아무것도 없습니다.
첨부된:
sudo crontab -u user2 -l
00 12 * * * DISPLAY=:0 qdbus org.kde.ksmserver /KSMServer logout 0 0 0
cat /etc/crontab
00 12 * * * user2 DISPLAY=:0 qdbus org.kde.ksmserver /KSMServer logout 0 0 0