在根incron作业中使用Zenity显示消息给当前登录的用户(Using Zenity in a

2019-10-20 03:16发布

工作的一个脚本来自动上传的文件都放在一个目录下,然后显示一个链接到他们在当前登录的用户。 机器的用户将通过LDAP进行身份验证。

正在由incron监控的目录是任何用户的目录之外的,并且被链接到/ home /用户名/上传为每个用户目录中。 当用户把一个文件在这里,它会自动上传没有问题。

当我遇到问题时显示文件的URL为当前用户。 下面是相关的代码:

从在/ var /阀芯/ incron /根

/home/public/uploads IN_CLOSE_WRITE /home/public/upload_files.sh > /dev/null 2>&1

从/home/public/upload_files.sh线有关Zenity显示:

DISPLAY="$(ck-list-sessions | grep "active = TRUE" -A1 | tail -n 1 | cut -f2 -d"'").0"
zenity --info --text="http://aniceurlhere.com/`date +%m.%d.%y`/$filename" --display=$DISPLAY

如前所述,上传完成,但绝不会在显示Zenity消息。 通过在/ var /日志/ cron的展望,我可以看到作业运行和完整,没有错误都将显示在那里。

任何援助将不胜感激。

Answer 1:

如果你想使用zenity或通知,发送这需要一点努力。 我没有得到它的工作,但是我只是用xmessage代替:

易选项1:xmessage(脚本)

MSSG="/tmp/mssg-file-${RANDOM}" 
echo -e " MESSAGE \n ==========\n Done with task, YEY. " > ${MSSG}
xmessage -center -file ${MSSG} -display :0.0 
[[ -s ${MSSG} ]] && rm -f ${MSSG}

易选项2:设置DISPLAY(当时应该工作)

    export DISPLAY=:0 && /usr/bin/somedirectory/somecommand


文章来源: Using Zenity in a root incron job to display message to currently logged in user