2013-01-12 148 views
0

嗨我試圖運行一個腳本,調用xclip爲了有一個字符串準備粘貼,當我連接到互聯網。當linux系統調用腳本某些命令不起作用(cron/if-up.d)

我有一個腳本/etc/network/if-up.d/script連接時,它執行(我讓他在文件發佈日期succesfuly),但XCLIP指令似乎不起作用,沒有什麼可以粘貼的。如果我通過在控制檯中輸入/etc/network/if-up.d/script來手動調用此腳本,它可以很好地工作。

如果我嘗試啓動zenity消息,它也不會在連接時出現。再次如果我用手做它它會出現。

然後我有一個期望的腳本,調用matlab(控制檯模式),如果我手動執行它的工作原理,但如果我從cron調用它在調用腳本時會凍結。

它驅使我崩潰,因爲似乎只有某些腳本中的某些命令可以在系統自動調用它時執行。

心中已經tryed調用與nohup的指令指令&,但還惦記

+2

你的cron的腳本是不是在你的logge的上下文中運行d-in用戶;你的cron腳本(當被cron執行時)對你的桌面會話沒有可見性等等。我不認爲你可以從cron啓動X應用到你的桌面,因爲它不知道你的環境。 – Joe

回答

1

這是事先設計好的,你四處搜尋,並會看到compliated的方式來解決這個問題,或者我在這裏描述,您可以使用xmessage:Using Zenity in a root incron job to display message to currently logged in user

容易的選擇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