以root身份从linux bash重启apache2

时间:2011-09-12 21:26:07

标签: linux bash apache2 command stdin

我想从linux(OpenSUSE)的bash重启apache。

我正在尝试从文件(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

我的问题是什么,如何解决?

1 个答案:

答案 0 :(得分:4)

sudo -S选项从stdin中读取密码。

  

-S(stdin)选项导致sudo从中读取密码   标准输入而不是终端设备。

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