2011-09-12 51 views
0

我想從linux(OpenSUSE)中的bash重新啓動apache。以root用戶身份從linux bash重新啓動apache2

我想從文件(stdin)讀取root密碼。這就是我要做的事:

exec < /opt/otrsadm/stdin 
read a1 
sudo apache2ctl -k graceful 
echo $a1 

我得到這個在我的日誌:

[Mon Sep 12 23:23:12 2011] [error] [client 192.168.1.101] Restarting apache 
[Mon Sep 12 23:23:13 2011] [error] [client 192.168.1.101] sudo 
[Mon Sep 12 23:23:13 2011] [error] [client 192.168.1.101] : 
[Mon Sep 12 23:23:13 2011] [error] [client 192.168.1.101] no tty present and no askpass program specified 

什麼是我的問題,如何解決?

回答

4

sudo -S選項從標準輸入讀取密碼。

-S(stdin)選項會導致sudo從 標準輸入(而不是終端設備)讀取密碼。

echo "password" | sudo -S apache2ctl -l graceful 
+0

好的,謝謝!如果我想從文件加載密碼,那麼我應該怎麼寫呢? – Nicsoft

+0

echo $ a1 | sudo -S apache2ctl -l優雅 –

+0

只有當我直接在線上輸入密碼時才能使用文件。這不是正確的語法:exec Nicsoft

相關問題