我正在写一个bash文件.我需要apachectl从我的bash文件开始.所以我写道:
apachectl start
Run Code Online (Sandbox Code Playgroud)
当我用root运行它时,发生了一个错误:
apachectl: command not found
Run Code Online (Sandbox Code Playgroud)
我搜索过,我发现,我应该是超级用户而su -不是su
现在,我想知道:
为什么发生这个错误?
我该su怎么办呢?
tar*_*aro 16
在shell脚本中,除了$ PATH中已存在可执行文件的目录外,您应该使用完整路径来执行命令.例如,找到apachectl二进制文件所在的位置:
which apachectl
Run Code Online (Sandbox Code Playgroud)
要么
whereis apachectl
Run Code Online (Sandbox Code Playgroud)
你会得到类似的东西:
/usr/local/sbin/apachectl
Run Code Online (Sandbox Code Playgroud)
所以,使用它.
命令未找到错误是因为"apachectl"不在您的路径中.只需使用命令的完整路径,例如
/etc/init.d/apachectl start
如果您收到权限被拒绝错误,则需要以其他用户身份运行.但这是一个不同的问题.
使用find命令首先定位apachecetl
find / -name apachectl
Run Code Online (Sandbox Code Playgroud)
然后你可以通过运行 status 命令来测试它(假设这是来自 find 命令的位置)
/usr/local/sbin/apachectl status
Run Code Online (Sandbox Code Playgroud)
如果出现问题,您可能需要重新启动 apache
/usr/local/apache/bin/apachectl restart
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32836 次 |
| 最近记录: |