当前位置: 首页 > Linux

如何设置Linux系统自动运行脚本

时间:2023-04-06 23:43:24 Linux

在工作中,我们经常会有在系统启动后自动启动某个脚本或服务的需求。在Windows下,我们有很多种设置开机的方法,但是在Linux系统下我们需要如何操作呢?linux下设置启动也是可以的,但是可能需要我们敲一些命令(UI界面上可能也有设置方法,不过我不熟悉,我比较玩命令)。下面我们将介绍三种简单但可行的启动设置方法。方法一:修改/etc/rc.d/rc.local文件/etc/rc.d/rc.local文件会在Linux系统所有服务启动后运行。所以如果你想让你自己的脚本在开机后运行,你可以在这个文件中添加你自己的脚本路径。但是,首先您需要确保您有权运行该文件。$chmod+x/etc/rc.d/rc.local为了演示,我们创建了一个脚本,执行时会在主目录中写入一个包含特定信息的文件。$vimauto_run_script.sh#!/bin/bashdate>>/home/alvin/output.txthostname>>/home/alvin/output.txt保存退出后赋予可执行权限:$chmod+xauto_run_script.sh然后,我们在/etc/rc.d/rc.local文件的最后一行添加脚本:$vim/etc/rc.d/rc.local/home/alvin/auto_run_script.sh接下来,我们可以试试它是否有效。直接重启系统即可:$sudoreboot重启后会在home目录下看到脚本执行的结果。方法二:使用crontab众所周知,crontab是Linux下的定时任务。当时间到达我们设定的时间后,可以自动触发某些脚本的运行。我们可以自己设置定时任务时间,然后编写相应的脚本。但是,有一个特殊的任务叫做@reboot,其实我们可以直接从它的字面意思上看出来,这个任务就是在系统重启后自动运行某个脚本。那么它会运行什么脚本呢?我们如何着手设置这个脚本?我们可以通过crontab-e来设置。$crontab-e@reboot/home/alvin/auto_run_script.sh然后,直接重启。运行效果和上面类似。方法三:使用systemd服务上面介绍的两种方法在任何Linux系统上都可以使用。但是这种方法只适用于systemd系统。如何区分是否是systemd系统?很简单,运行psaux命令,查看pid为1的进程是不是systemd就可以了。为此,我们需要创建一个systemd启动服务,并将其放置在/etc/systemd/system/目录下。我们创建的systemd启动服务如下。注意这次后缀是.service,不是.sh。$vimauto_run_script.service[Unit]Description=RunaCustomScriptatStartupAfter=default.target[Service]ExecStart=/home/alvin/auto_run_script.sh[Install]WantedBy=default.target从内容可以看出我们的服务脚本/home/alvin/auto_run_script.sh最终会被调用。然后,我们将这个脚本放在/etc/systemd/system/目录下,然后我们运行以下两个命令来更新systemd配置文件并启动服务。$systemctldaemon-reload$systemctlenableauto_run_script.service一切就绪后,我们就可以重启系统了。$reboot以上是如何设置linux系统开机时自动运行脚本。以上就是良序教程网为各位小伙伴们分享的Linux相关知识。