0
我有一个需要与特定用户和特定httpd.conf
运行的apache。任何人都会这样做:在Linux上更改apachectl
su - test_user -c "/opt/test_server/apache-2.2.31/bin/apachectl -k start/stop -f /opt/test_server/apache-2.2.31/conf2/httpd.conf"
我的问题是我需要在apachectl
脚本上这样做。所以当我这样做时:
apachectl start
Apache将启动特定命令和httpd.conf
文件。
那么,什么阿帕奇通常做的是:
case $ARGV in
start|stop|restart|graceful|graceful-stop)
$HTTPD -k $ARGV
ERROR=$?
凡HTTPD='/opt/test_server/apache-2.2.31/bin/httpd'
和ARGV
是运行参数(start
/stop
)。我想这种方式改变:
ARGV=$ARGV" -f /opt/test_server/apache-2.2.31/conf2/httpd.conf"
COMMAND="su - my_id -c \"${HTTPD} -k ${ARGV}\""
$COMMAND
ERROR=$?
但是当我尝试运行它,我得到这个错误:
[[email protected] bin]# ./apachectl stop
su - test_user -c "/opt/test_server/apache-2.2.31/bin/httpd -k stop -f /opt/test_server/apache-2.2.31/conf2/httpd.conf"
su: invalid option -- k
Try `su --help' for more information.
我做错了吗?
您是否尝试过'su --help'以获取更多信息?提示:第一行是'Usage:su [OPTION] ... [ - ] [USER [ARG] ...]' – miken32
另外,Apache有['user'](http://httpd.apache.org/ docs/current/mod/mod_unixd.html#user)和['group'](http://httpd.apache.org/docs/current/mod/mod_unixd.html#group)指令来控制服务器运行的用户。 – miken32