我们有一个偶尔使用的工作站,我正在尝试设置一个脚本来在关机时对其进行备份。我在com.apple.loginwindow中创建了一个1行bash脚本的LogoutHook,该脚本触发了一个Applescript,该Applescript比较我自己的日志条目以确定是否应运行备份。如果是这样,它将调用主Applescript来触发Chronosync备份作业。
一切正常...除了在Mac终止并关闭它之前我几乎没有启动备份作业。我想将发布SIGTERM和SIGKILL,并且所有流程都将迅速合规。
我还研究了启动时的“正确”方式(因为不赞成使用LogoutHooks)。“启动”并不真正支持在关机时调度作业:它需要在登录时启动脚本,休眠/等待捕获SIGTERM。同样,这带来了一个问题,即整个系统都在几秒钟内关闭,从网络堆栈到Chronosync守护程序。
shutdown命令的手册页还指出:
关闭后,将向所有正在运行的进程发送SIGTERM,然后发送SIGKILL。SIGKILL将在有意地不确定的时间段之后跟随SIGTERM。程序仅需要足够的时间刷新所有脏数据并退出。
有没有办法在我的脚本完成之前延迟关机?理想情况下,我希望具有与Apple的Software Updater相同的行为,该行为需要在注销计算机之前安装更新,然后才能关闭计算机。