当关闭/重新启动我的Linux服务器时,我需要关闭一些服务,但我不确定Reboot命令是如何工作的。
据我理解,当系统关闭时/etc/rc0.d/脚本将被调用,而/etc/rc6.d/脚本将在系统重新启动时被调用。
但是根据这个链接:https://linux.die.net/man/8/reboot,除在级别0和6上运行之外,reboot命令也调用关机命令,这是否意味着在运行重新引导命令时也会调用/etc/rc0.d/脚本?
我是否只需要将服务杀死脚本放入/etc/rc0.d/和/etc/rc1.d/?还是它也需要在/etc/rc6.d/中,以确保在重新启动时停止服务?
编辑:添加我的服务器配置。目前运行Redhat,从6.x到7.2不等。
发布于 2020-05-26 09:45:13
如果您只想在关闭时以您想要的方式终止某些进程,可以编写两个简单的脚本,如下所示:
#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"并在每次重新启动(或关机)时运行这些命令。
但是,如果坚持使用init脚本,则可以将脚本放在/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的角度看,关闭和重新启动是一样的。
如果有人有更好的解决方案,我很高兴听到。
https://askubuntu.com/questions/1243799
复制相似问题