Linux 我们为什么要使用/etc/init.d/process start“;
为什么在下面的程序中使用Linux 我们为什么要使用/etc/init.d/process start“;,linux,shell,Linux,Shell,为什么在下面的程序中使用/etc/init.d/httpd start?为什么我们不能使用服务httpd start?对我来说,这是一项未经认可的服务。(我已经安装了httpd。) :-)维沙,我不是想让你失望。然而,如果没有很多假设,很难回答你的问题 不使用/etc/init.d/httpd start的一些注意事项 硬编码位置 假设httpd存储在文件/etc/init.d/httpd中,而不是apache2或nginx或其他文件 即使是ps-ef测试也假定进程名为httpd,有时不是
/etc/init.d/httpd start
?为什么我们不能使用服务httpd start
?对我来说,这是一项未经认可的服务。(我已经安装了httpd。)
:-)维沙,我不是想让你失望。然而,如果没有很多假设,很难回答你的问题
不使用/etc/init.d/httpd start的一些注意事项
- 硬编码位置
- 假设httpd存储在文件/etc/init.d/httpd中,而不是apache2或nginx或其他文件
- 即使是
ps-ef
测试也假定进程名为httpd,有时不是
不使用服务httpd启动的一些注意事项
在这个脚本中不使用服务httpd start
也有很好的理由,因为它可能有副作用。比如说,
服务
可能未将httpd注册为服务
- 如果您使用
服务
,您可能会重新启动您可能不想执行的其他相关服务
服务
可能会在启动过程中隐藏错误,您可能需要这样做
用httpd替换$service。很抱歉出错。您应该编辑您的问题以修复错误。您的问题不是真正可以回答的,因为我们不知道您在OPS中列出的脚本的上下文是什么。脚本的上下文是检查apache是否正在运行,如果没有启动它。Simpleer如果该脚本由服务本身使用,则服务
不会调用自身,因为这只会再次调用此脚本,woopsies我们有一个无限循环:P。。。如果服务
没有调用该行,则可以将该行替换为服务httpd start
。这就是为什么我会问,脚本是在什么上下文中被调用的。剧本的意思已经很清楚了
#!/bin/bash
if (( $(ps -ef | grep httpd | wc -l) > 1 ))
then
echo "httpd is running!!!"
else
/etc/init.d/httpd start
fi