在 Linux 启动或重启时执行命令与脚本

梦想天空分外蓝 2017-12-10

在 Linux 启动或重启时执行命令与脚本

有时可能会需要在重启时或者每次系统启动时运行某些命令或者脚本。我们要怎样做呢?本文中我们就对此进行讨论。 我们会用两种方法来描述如何在 CentOS/RHEL 以及 Ubuntu 系统上做到重启或者系统启动时执行命令和脚本。 两种方法都通过了测试。

方法 1 – 使用 rc.local

这种方法会利用 /etc/ 中的 rc.local 文件来在启动时执行脚本与命令。我们在文件中加上一行来执行脚本,这样每次启动系统时,都会执行该脚本。

不过我们首先需要为 /etc/rc.local 添加执行权限,

  1. <span class="pln">$ </span><span class="kwd">sudo</span><span class="kwd">chmod</span><span class="pun">+</span><span class="pln">x </span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">rc</span><span class="pun">.</span><span class="kwd">local</span>

然后将要执行的脚本加入其中:

  1. <span class="pln">$ </span><span class="kwd">sudo</span><span class="kwd">vi</span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">rc</span><span class="pun">.</span><span class="kwd">local</span>

在文件最后加上:

  1. <span class="pln">sh </span><span class="pun">/</span><span class="pln">root</span><span class="pun">/</span><span class="kwd">script</span><span class="pun">.</span><span class="pln">sh </span><span class="pun">&</span>

然后保存文件并退出。使用 rc.local 文件来执行命令也是一样的,但是一定要记得填写命令的完整路径。 想知道命令的完整路径可以运行:

  1. <span class="pln">$ which command</span>

比如:

  1. <span class="pln">$ which shutter</span>
  2. <span class="pun">/</span><span class="pln">usr</span><span class="pun">/</span><span class="pln">bin</span><span class="pun">/</span><span class="pln">shutter</span>

如果是 CentOS,我们修改的是文件 /etc/rc.d/rc.local 而不是 /etc/rc.local。 不过我们也需要先为该文件添加可执行权限。

注意:- 启动时执行的脚本,请一定保证是以 exit 0 结尾的。

方法 2 – 使用 Crontab

该方法最简单了。我们创建一个 cron 任务,这个任务在系统启动后等待 90 秒,然后执行命令和脚本。

要创建 cron 任务,打开终端并执行

  1. <span class="pln">$ crontab </span><span class="pun">-</span><span class="pln">e</span>

然后输入下行内容,

  1. <span class="lit">@reboot</span><span class="pun">(</span><span class="kwd">sleep</span><span class="lit">90</span><span class="pun">;</span><span class="pln"> sh \location\script</span><span class="pun">.</span><span class="pln">sh </span><span class="pun">)</span>

这里 \location\script.sh 就是待执行脚本的地址。

我们的文章至此就完了。如有疑问,欢迎留言。


via: http://linuxtechlab.com/executing-commands-scripts-at-reboot/

作者:Shusain 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关推荐