重启命令是否调用 /etc/rc0.d/ 目录中的脚本?

重启命令是否调用 /etc/rc0.d/ 目录中的脚本?

我需要在关闭/重启 Linux 服务器时终止一些服务,但我不确定重启命令如何工作。

据我了解,/etc/rc0.d/ 脚本将在系统关闭时调用,而 /etc/rc6.d/ 脚本将在系统重新启动时调用。

但根据这个链接:https://linux.die.net/man/8/reboot,除了在级别 0 和 6 上运行时,reboot 命令也会调用 shutdown 命令,那么这是否意味着在运行 reboot 命令时也会调用 /etc/rc0.d/ 脚本?

我是否只需要将服务终止脚本放入 /etc/rc0.d/ 和 /etc/rc1.d/ 中?还是还需要将其放入 /etc/rc6.d/ 中以确保重新启动时服务停止?

编辑:添加我的服务器配置。当前运行的是 Redhat,版本从 6.x 到 7.2。

答案1

如果您只是想在关机时以您想要的方式终止一些进程,您可以编写如下两个简单的脚本:

#Shutdown.sh
killall blah blah blah
init  0

#Reboot.sh
killall blah blah blah
init 6

.bashrc并在您登录的每个用户的文件中创建一些别名:

alias shutdown_custom="Shutdown.sh"
alias reboot_custom="Reboot.sh"

每次要重新启动(或关机)时运行这些命令

但是如果您坚持使用初始化脚本,您可以将脚本放在目录中/etc/init.d并发出以下命令(具有超级用户权限):

update-rc.d script-name enable 0 6 

但请注意,您应该在脚本的标题中提及运行级别。例如,大多数 Linux 服务都可以找到以下内容:

# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6

/etc/rc0.d在我的系统中,和的内容/etc/rc6.d完全相同,因此从 systemd 的角度来看,关机和重启是相同的。

如果有人有更好的解决方案我很高兴听到。

相关内容