我有一个非常重要的进程,它有一个队列,在队列中我存储重要的数据,如果有人捕获该进程,它必须处理队列中的数据,然后它会自行终止。
因此,如果用户执行关闭操作,那么该进程将被终止,我的数据将丢失......
所以我的问题是,我们是否有任何命令可以等待或不允许机器关闭,或者提供您宝贵的替代建议来处理这种情况。
答案1
如果您的软件执行关键工作,您必须编写一个服务文件并将其放在/etc/init.d
该文件下,当计算机出现故障时stop
,您需要清理该脚本中的脚本启动功能,以免弄乱您的程序。就像Oracle DB一样,当系统出现故障时,它会关闭端口以不处理任何信息,然后将信息保存在硬盘上(清理!)。
笔记:stop
好的软件会在服务文件中的函数发送特定信号(主要是 15 个)后自行清理数据。
笔记:普通用户无法使用reboot -p
或shutdown -h now
等命令执行关机程序init 0
。
笔记:普通用户无法杀死 root 拥有的进程。