首次启动时运行脚本

use*_*890 5 scripting ubuntu boot

我想创建一个只在第一次启动时运行的脚本,以后再也不会运行了。我正在开发一个将在模板上转换的 VM,所以我想确保我可以创建一个可以在服务器启动时自动运行的脚本。

我有一些线索,我可以将脚本放在 /etc/init.d/firstboot 下,例如,并使用 chkconfig 在 rhel 上执行此操作(这在 Ubuntu 上似乎不可用),但我需要在 Ubuntu 14 和 16 上执行此操作, 有任何想法吗?-- 我可以假设如果我在 /etc/init.d 下放置一个脚本,它会在启动时运行吗?

我一直在谷歌搜索,但我看到了很多不同的东西。例如,我在rhel 中看到了类似的内容:

/etc/init.d/yourscript:
#!/bin/bash
# chkconfig: 2345 9 20
# description: long description

case "$1" in
  start)
    Do your thing !!!
    chkconfig yourscript off
  ;;
  stop|status|restart|reload|force-reload)
    # do nothing
  ;;
esac
Run Code Online (Sandbox Code Playgroud)

任何帮助深表感谢

Mar*_*rco -1

它不会仅仅因为它位于 /etc/init.d/ 中而在启动时运行。

该脚本可以位于 /etc/init.d 中,但您必须这样做,initctl reload-configuration或者您可以将脚本放在您想要的位置echo "/path/to/yourscript start &" >> /etc/rc.local

然后,只需chmod -x $0在开始部分的末尾添加即可,它将永远不会再次执行。

或者,如果您希望删除脚本,请使用rm $0. 如果您选择 initctl 方式,请使用rm $0 && initctl reload-configuration禁用。