2012-08-09 170 views
0
I am unable to start gnome-terminal from rc.local , with the following error. 

** (gnome-terminal:1304): WARNING **: Command line `dbus-launch --autolaunch=bd53fdd726adb41172f458c100000007 --binary-syntax --close-stderr' exited with non-zero exit status 1: Autolaunch error: X11 initialization failed.\n 
Failed to parse arguments: Cannot open display: 
Failed to parse arguments: Cannot open display: 

the command inside rc.local is 
cd /path/to/server 
gnome-terminal -e 'sudo node startserver.js' 

+0

它工作正常,如果我手動啓動它通過sudo /etc/rc.local – techgentsia 2012-08-09 12:08:02

回答

0

似乎是想告訴你一些事情的錯誤消息:exited with non-zero exit status 1: Autolaunch error: X11 initialization failed - 換句話說,rc.local中不具有的X顯示啓動gnome-terminal。

如果您確信X顯示將可在此執行的時間(我懷疑這一點 - 執行長X顯示出現前rc.local中結束),你可以嘗試env DISPLAY=:0 gnome-terminal -e 'sudo node startserver.js'。這可能是有問題的,因爲gnome-terminal將以root身份運行(由於幾個原因,這是一個糟糕的想法)。

如果,另一方面,你要開始在登錄用戶的X顯示器終端(似乎是你的最終目標),您可能希望將命令添加到您的自動啓動腳本。有關GUI版本,請參閱this,有關結果,請參閱~/.config/autostart/etc/xdg/autostart

+0

謝謝,但我的服務器偵聽端口80它需要sudo綁定到該端口。 – techgentsia 2012-08-09 12:40:36

+0

@techgentsia:這與我的回答有什麼關係?我**不**建議改變裏面運行的內容* gnome-terminal(這是你的'sudo whatever',這個**保持不變**),但是'gnome-terminal'進程本身的用戶。 – Piskvor 2012-08-09 13:04:15

+0

我試圖在rc.local裏面運行gnome-terminal,因爲它以root權限啓動。有沒有辦法做到這一點... – techgentsia 2012-08-09 13:16:06