五分钟学算法”,选择“星标”公众号
重磅干货,第一时间送达
在工作中,我们常常有个需求,那就是在系统启动以后,手动启动某个脚本或服务。在Windows下,我们有好多方式可以设置开机启动,但在Linux系统下我们须要怎么操作呢?
Linux下同样可以设置开机启动linux手动启动服务,但可能须要我们敲一些命令(可能也有UI界面的设置方式,但我不熟,我更多是玩命令)。下边我们就介绍三种简单但可行的开机启动设置方式。
方式一:更改/etc/rc.d/rc.local文件
/etc/rc.d/rc.local文件会在Linux系统各项服务都启动完毕以后再被运行。所以你想要自己的脚本在开机后被运行的话,可以将自己脚本路径加到该文件里。
然而,首先须要确认你有运行这个文件的权限。
$chmod+x/etc/rc.d/rc.local
为了演示,我们创建了一个脚本,当它被执行以后,将在家目录下写入有特定信息的文件。
$vimauto_run_.sh
#!/bin/bash
date>>/home/alvin/output.txt
hostname>>/home/alvin/output.txt
保存退出后,再给它赋于可执行权限:
$chmod+xauto_run_.sh
之后,我们再将脚本添加到/etc/rc.d/rc.local文件最后一行:
$vim/etc/rc.d/rc.local
/home/alvin/auto_run_.sh
接出来linux入门,我们就可以试试疗效了。直接重启系统就可以了:
$sudoreboot
重启以后,都会在家目录下见到脚本执行的结果了。
方式二:使用crontab
你们晓得,crontab是Linux下的计划任务,当时间达到我们设定的时间时,可以手动触发个别脚本的运行。
我们可以自己设置计划任务时间,之后编撰对应的脚本。并且,有个特殊的任务,叫作@reboot,我们当然也可以直接从它的字面意义看下来,这个任务就是在系统重启然后手动运行某个脚本。
那它将运行的是哪些脚本呢?我们怎么去设置这个脚本呢?我们可以通过crontab-e来设置。
$crontab-e
@reboot/home/alvin/auto_run_.sh
之后,直接重启即可。运行的疗效跟前面类似。
方式三:使用systemd服务
以上介绍的两种方式,在任何Linux系统上都可以使用。但本方式仅适用于systemd系统。怎么分辨是不是systemd系统?很简单linux计划任务执行url,只需运行psaux命令linux操作系统原理,查看pid为1的进程是不是systemd。
为了实现目的,我们须要创建一个systemd启动服务linux社区,并把它放置在/etc/systemd/system/目录下。
我们创建的systemd启动服务如下。请注意红旗linux系统下载,这时后缀是.service,而不是.sh。
$vimauto_run_.service
[Unit]
Deion=RunaCustomatStartup
After=default.target
[Service]
ExecStart=/home/alvin/auto_run_.sh
[Install]
WantedBy=default.target
从服务的内容可以看下来linux手动启动服务,我们最终还是会调用/home/alvin/auto_run_.sh这个脚本。
之后,我们再把这个脚本放置在/etc/systemd/systerm/目录下,然后我们再运行下边两条命令来更新systemd配置文件,并启动服务。
$systemctldaemon-reload
$systemctlenableauto_run_.service
万事俱备以后,我们就可以重启系统啦。
$reboot
---
爱分享,爱开源,GitHubPorn现已即将上线!专注于为你们分享优质的计算机学习资源与开发者工具。
假如明天的推荐符合你的口味,请在文章点赞,以表示对我的支持linux计划任务执行url,大家的点赞和转发关注,是我持续更新的动力^_^