主页 > 苹果版imtoken钱包官网 > 如何设置Linux系统开机自动运行脚本?
如何设置Linux系统开机自动运行脚本?
大家好,我是梁旭。
在工作中,我们经常会有在系统启动后自动启动某个脚本或服务的需求。 在Windows下,我们有很多种设置开机的方法,但是在Linux系统下我们需要如何操作呢?
也可以设置为在Linux下启动,但是可能需要我们敲一些命令(UI界面上可能也有设置方法,不过我不熟悉,我比较玩命令)。 下面我们将介绍三种简单但可行的启动设置方法。
方法一:修改/etc/rc.d/rc.local文件
/etc/rc.d/rc.local文件将在Linux系统所有服务启动后运行。 所以如果你想让你自己的脚本在开机后运行,你可以在这个文件中添加你自己的脚本路径。
但是,首先您需要确保您有权运行该文件。
$ chmod +x /etc/rc.d/rc.local
为了演示,我们创建了一个脚本,该脚本在执行时会在主目录中写入一个包含特定信息的文件。
$ vim auto_run_script.sh
#!/bin/bash
date >> /home/alvin/output.txt
hostname >> /home/alvin/output.txt
保存退出后,赋予其可执行权限:
$ chmod +x auto_run_script.sh
然后,我们将脚本添加到 /etc/rc.d/rc.local 文件的最后一行:
$ vim /etc/rc.d/rc.local
/home/alvin/auto_run_script.sh
接下来我们就可以试试效果了。 直接重启系统即可:
$ sudo reboot
重新启动后,您将在主目录中看到脚本执行的结果。
方法二:使用crontab
大家知道,crontab是Linux下的定时任务。 当时间到达我们设置的时间时,它可以自动触发某些脚本的运行。
我们可以自己设置定时任务时间,然后编写相应的脚本。 但是,有一个特殊的任务叫做@reboot,我们其实直接从它的字面意思就可以看出,这个任务就是在系统重启后自动运行某个脚本。
那么它会运行什么脚本呢? 我们如何着手设置这个脚本? 我们可以通过crontab -e来设置。
$ crontab -e
@reboot /home/alvin/auto_run_script.sh
然后直接重启就好了。 运行效果和上面类似。
方法三:使用systemd服务
上面介绍的两种方法可以在任何 Linux 系统上使用。 但是这种方法只适用于systemd系统。 如何区分是否是systemd系统? 很简单etc怎么开机启动etc怎么开机启动,运行ps aux命令,查看pid为1的进程是否为systemd即可。
为此,我们需要创建一个systemd启动服务,并将其放置在/etc/systemd/system/目录下。
我们创建的systemd启动服务如下。 注意后缀是.service,不是.sh。
$ vim auto_run_script.service
[Unit]
Description=Run a Custom Script at Startup
After=default.target
[Service]
ExecStart=/home/alvin/auto_run_script.sh
[Install]
WantedBy=default.target
从服务的内容可以看出,我们最终会调用脚本/home/alvin/auto_run_script.sh。
然后,我们将这个脚本放在 /etc/systemd/system/ 目录下,然后我们运行以下两个命令来更新 systemd 配置文件并启动服务。
$ systemctl daemon-reload
$ systemctl enable auto_run_script.service
一切就绪后,我们就可以重启系统了。
$ reboot
良旭个人微信
添加良旭个人微信,领取3套程序员必读资料
→ 精选技术资料分享
→ 高手如云交流社区
本公众号所有博文已整理成目录,请在公众号回复“m”获取!