我的电脑中有两个用户,即我(user1),即具有 sudo 权限的用户。我希望用户2在12:00从他的kde会话中注销,这样他就无法阻止它,并且当他稍后登录时所有应用程序都在那里。
我尝试使用 cron,作为 user2、me 和 root,就像这样
00 12 * * * qdbus org.kde.ksmserver /KSMServer logout 0 0 0
我还尝试以root身份执行cron,就像这样
00 12 * * * user2 qdbus org.kde.ksmserver /KSMServer logout 0 0 0
两个都没有工作
答案1
您必须将DISPLAY
变量设置为cron
独立于 GUI 运行。
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