如何在 CentOS 上启动时在后台运行 shell 脚本?

如何在 CentOS 上启动时在后台运行 shell 脚本?

我有一个 shell 脚本包含这样的循环:

while true
do
  if ... ; then
    ...
  else
    ...
    break
  fi
done

我希望这个脚本在操作系统启动时运行后端。我尝试将此脚本添加到 /etc/rc.d/local.rc 作为启动脚本。但是操作系统启动时间太长,操作系统启动后,这个脚本就不存在了。

那么如何在操作系统启动时将此脚本添加到后端呢?我需要这个脚本也可以在后端手动启动。谢谢~

答案1

要在启动时运行脚本,您应该从

/etc/cron.d/myrebootscript

与内容

@reboot <user> <command>

例子:

@reboot joe /usr/local/bin/myscript

该脚本将在启动过程中的不可预测的时间执行。例如,如果脚本应等待网络启动,则应添加一个循环/usr/local/bin/myscript

#! /bin/bash
# wait for 10.1.2.3 is pong'ing
while ! ping -c1 -W1 10.1.2.3 > /dev/null ; do
  sleep 1
done
do_my_command_here

/etc/rc.local如今已被弃用。

答案2

将该脚本包含在 /etc/rc.d/rc.local 文件中,以便在执行所有 init 脚本后它将执行。

我们可以在 .bash_profile 中添加路径的另一个选项

相关内容