我正在写一个bash文件。我需要从我的bash文件中启动apachectl
。所以我写了:从bash启动apachectl
apachectl start
当我用root运行它,发生了错误:
apachectl: command not found
我搜索,我发现,我应该是超级用户与su -
没有su
现在,我想知道:
为何发生此错误?
我怎么能运行它与
su
?
我正在写一个bash文件。我需要从我的bash文件中启动apachectl
。所以我写了:从bash启动apachectl
apachectl start
当我用root运行它,发生了错误:
apachectl: command not found
我搜索,我发现,我应该是超级用户与su -
没有su
现在,我想知道:
为何发生此错误?
我怎么能运行它与su
?
找不到命令错误是因为“apachectl”不在您的路径中。只需使用该命令的完整路径,例如
/etc/init.d/apachectl开始
如果你得到一个权限被拒绝的错误,那么你需要为不同的用户运行。但这是一个不同的问题。
在shell脚本中,除非目录的可执行文件已经在$ PATH中,否则您应该使用完整路径来执行命令。 例如,发现那里的apachectl二进制文件位于:
which apachectl
或
whereis apachectl
,你会得到这样的:
/usr/local/sbin/apachectl
因此,利用这一点。
看来,命令apachectl
不在您的环境路径中。找到apachectl
所在的目录,并将其添加到您的PATH
或使用完整路径启动它。大多数现代发行版使用sudo
来允许用户获得提升的权利,所以如果可以的话,您应该使用sudo
。
使用find命令首先找到apachecetl
find/-name apachectl
然后你就可以运行状态命令来测试它(假设这是从find命令的位置)
/usr/local/sbin/apachectl status
,那么你可能需要重新启动Apache如果有问题
/usr/local/apache/bin/apachectl restart
首先杀死所有的httpd服务使用...
sudo killall -9 httpd
其次,找到apachectl。按ctrl + r进入终端输入“apachectl”单词查找“apachectl”的路径。
之后选择:
sudo <path>/apachectl stop|start
启动apache sudo服务后启动httpd – diegohsi 2016-02-24 12:34:11
它看起来像'apachectl'是不是在你的路径。尝试'find/-name apachectl'。 – cnicutar 2012-02-19 09:48:30
是的,谢谢,它在/ usr/sbin /中,所以谢谢! – 2012-02-19 09:57:31