![rc6.d 中的自定义关闭脚本似乎不起作用。](https://linux22.com/image/7429/rc6.d%20%E4%B8%AD%E7%9A%84%E8%87%AA%E5%AE%9A%E4%B9%89%E5%85%B3%E9%97%AD%E8%84%9A%E6%9C%AC%E4%BC%BC%E4%B9%8E%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%E3%80%82.png)
我正在使用一个有点敏感的软件应用程序,因此我不想在重新启动或关机时自动关闭该软件。我创建了一个脚本,并将其放置在 /etc/init.d/ 中,并在 /etc/rc6.d 中添加符号链接,并将其命名为“K99_restofname”。该脚本在重新启动场景之外的测试中效果很好。该过程需要近一分钟才能完成。我不认为它在我重新启动时运行或工作,因为系统关闭得很快,并且我应该在脚本工作时看到延迟。 (我也在看着屏幕)我也没有在日志中看到任何内容。这是我的脚本:
#!/bin/bash
## # Any subsequent(*) commands which fail will cause the shell script to exit immediately
abort()
{
echo >&2 '
***************
*** ABORTED ***
***************
'
echo "An error occurred. Exiting..." >&2
exit 1
}
trap 'abort' 0
set -e
## Stopping the application services before the system shuts down. This must be done by the application user user.
VAR=`/bin/su -c "/opt/app/bin/command stopall" - user`
echo $VAR
# DONE
trap : 0
echo >&2 '
************
*** DONE ***
************
'
谁能告诉我可能发生了什么或者我如何追踪自定义关闭脚本?还有比这更好的方法来实现我的目标吗?我的系统是RHEL 6服务器。
答案1
将 K99 更改为 S00_ 或 mv S01reboot Sxxreboot 并使脚本成为 S01。
我所做的是创建一个脚本:
#!/bin/bash
echo "Ran S10" >> /var/tmp/done
并将其称为“S10Test”
然后另一个:
#!/bin/bash
echo "Ran K10" >> /var/tmp/done
然后我重新启动了我的虚拟机。
/var/tmp/done 包含“S10”
您可能想测试一下自己。
我怀疑正在发生的是 S 脚本运行当你进入时运行级别。 K 脚本运行当你离开时。由于 S01Reboot(原名)会重新启动,因此没有“离开”。
(注意“嫌疑人”)。