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

Lai*_*uan 3 restart

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

$sudo /etc/init.d/vsftpd restart
Run Code Online (Sandbox Code Playgroud)

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

$sudo restart vsftpd
Run Code Online (Sandbox Code Playgroud)

有效。但是当我尝试重新启动我的 apache2 时:

$sudo restart apache2
> restart: Unknown job: apache2
Run Code Online (Sandbox Code Playgroud)

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

enz*_*tib 8

命令startstoprestart等是 的链接initctl,仅适用于新贵职位。

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

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