Linux 运行命令后可以安全地重新启动吗?

Linux 运行命令后可以安全地重新启动吗?,linux,bash,curl,Linux,Bash,Curl,我想在cronjob中运行一些代码后重新启动linux机器 代码基本上如下所示: #!/bin/sh do_something reboot 你认为什么基本上是: function do_something { local REPORT_URL=https://example.com/services/status local PAYLOAD='{"message":"Update script run with success.","code":'$UPDATE_SUCCES

我想在cronjob中运行一些代码后重新启动linux机器

代码基本上如下所示:

#!/bin/sh
do_something
reboot
你认为什么基本上是:

function do_something {
    local REPORT_URL=https://example.com/services/status
    local PAYLOAD='{"message":"Update script run with success.","code":'$UPDATE_SUCCESS'}'
    curl -X POST --form "payload=$PAYLOAD" "$REPORT_URL"
}
是否存在这样的可能性:do_something没有在重新启动之前完成所有作业,例如i/o操作

在这种情况下,以下解决方案中最好的是什么:

重新启动前添加同步。 重新启动前添加睡眠5。 重新启动前添加同步和睡眠。
在过去的一二十年里,这在任何流行的系统上都不是问题?。重新启动只会更改运行级别、目标或系统用于跟踪其应处于何种状态的任何概念。实际上,重新启动或关机只会触发将其置于该状态所需的事件。通常这包括卸载所有文件系统,内核将在卸载之前刷新/同步所有数据

所以不需要。在任何现代Linux发行版上,都不需要同步


另外,这假设do_某事不会产生任何后台任务。在这种情况下,问题完全不同,更多地与服务同步有关。如果有什么东西完成了所有的操作和退出,你就很好。

这在过去十年或二十年的任何流行系统上都不是问题?。重新启动只会更改运行级别、目标或系统用于跟踪其应处于何种状态的任何概念。实际上,重新启动或关机只会触发将其置于该状态所需的事件。通常这包括卸载所有文件系统,内核将在卸载之前刷新/同步所有数据

所以不需要。在任何现代Linux发行版上,都不需要同步


另外,这假设do_某事不会产生任何后台任务。在这种情况下,问题完全不同,更多地与服务同步有关。如果某件事完成了所有的操作和退出,你就很好。

到底是什么事?请显示它的代码。你到底在做什么?请出示密码。很好,很有启发性的答案,我在读Q时学到了一些我没有预料到的东西。很好,很有启发性的答案,我在读Q时学到了一些我没有预料到的东西。