使用脚本自动上载放在目录中的文件,然后向当前登录的用户显示指向它们的链接。该机器的用户将通过LDAP进行身份验证。
incron正在监视的目录位于任何用户目录之外,并且符号链接到每个用户的/ home / username / uploads目录。当用户在此处放置文件时,它会自动上传而不会出现问题。
我遇到问题的地方是向当前用户显示文件URL。这是相关的代码:
来自/ var / spool / incron / root 的
/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 / log / cron,我可以看到作业运行并完成,并且没有显示错误。
任何帮助将不胜感激。
答案 0 :(得分:2)
如果您想使用zenity或notify-send,这需要一些努力。我还没有让它工作但我只是使用了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