“restart X” 和 “/etc/init.d/X restart” 有什么区别?

“restart X” 和 “/etc/init.d/X restart” 有什么区别?

我通常使用此命令来重新启动我的守护进程(例如 vsftpd):

$sudo /etc/init.d/vsftpd restart

今天早些时候,我注意到它说我可以尝试 restart(8) 实用程序。我这样做了:

$sudo restart vsftpd

它起作用了。但是当我尝试重新启动 apache2 时:

$sudo restart apache2
> restart: Unknown job: apache2

为什么它们不同?当然我可以通过 /etc/init.d/apache2 重新启动 apache2

答案1

命令startstoprestart等是 的链接initctl,并且仅适用于 upstart 作业。

直接调用脚本/etc/init.d/将会对 upstart 作业发出警告,为了方便起见,通过包装器符号链接的通用脚本允许使用该脚本。

调用该service命令总是有效的,无论是对于 upstart 作业还是传统的 sysv init 脚本,所以它是首选方式。

答案2

您应该能够使用服务:

sudo service apache2 restart

相关内容