我想从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
我的问题是什么,如何解决?
答案 0 :(得分:4)
sudo -S选项从stdin中读取密码。
-S(stdin)选项导致sudo从中读取密码 标准输入而不是终端设备。
echo "password" | sudo -S apache2ctl -l graceful