Ubuntu18.04设置开机自启动自己的程序、脚本
本文使用的机器是win10+Ubuntu18.04双系统,虚拟机上的Ubuntu18.04操作一样,均可参考此文。
参考链接,言简意赅,亲测有效!
打开Ubuntu终端terminal
同时按三个键ctrl+alt+T
或者在桌面单击鼠标右键,再左键点击打开终端(E)
打开rc-local.service文件
Ubuntu终端输入sudo vim /lib/systemd/system/rc-local.service
+ 回车
输入密码后可以看到文件里的内容如下。我这个是修改过的,你的可能不是,照着修改。
井号"#"后面是注释。
# SPDX-License-Identifier: LGPL-2.1+
#
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
GuessMainPID=no
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
这里要用到vim文本编辑器,不太会用的小伙伴可以自行搜索以下基本操作。此处引用一个参考链接
创建rc.local文件(18.04版本没有rc.local文件,需要手动创建)
终端输入touch /etc/rc.local
在rc.local文件里写入以下内容
先打开rc.local
终端输入sudo vim /etc/rc.local
稍微解释一下代码都是啥意思
echo "!!!!!!!!!!!尝试运行cpp程序************" > /usr/local/rc-local-info.log
就是把!!!!!!!!!!!尝试运行cpp程序************
输出到/usr/local/rc-local-info.log
这个文件里去。
感觉类似c++里面的std::cout << "bala吧啦" << std::endl;
有兴趣的小伙伴可以自行查看以下linux中的echo命令,本文只简单说明。
1.echo “一些你想看的信息” > filename
将想要输出的内容覆盖到filename这个文件中去,filename中之前的内容会被覆盖,相当于修改原文件的内容。
2.echo “一些你想看的信息” >> filename
将想要输出的内容追加到filename这个文件中去,filename原文件不会被修改,只增添了一些内容。
/home/mdc123/cpp_learn/arr >> /usr/local/rc-local-info.log
就是运行/home/mdc123/cpp_learn/arr
这个
文件,将运行结果追加到/usr/local/rc-local-info.log
里面。
其中/home/mdc123/cpp_learn/arr
这个arr
文件是我自己随便写的c++代码,而且是编译后的可执行文件,小伙伴们需要换成自己的可执行文件。其它3行代码一样,故不做赘述。
如果小伙伴不想运行自己的文件,只想试一下开机自启动这个功能,可以做如下修改,只输出一句话。
给rc.local文件添加可执行权限
终端输入sudo chmod +x /etc/rc.local
启用服务
终端输入 sudo systemctl enable rc-local
我没打错就是rc-local
启动服务
终端输入 sudo systemctl start rc-local.service
检查状态
终端输入 sudo systemctl status rc-local.service
键盘按 ctrl+C 返回如下状态
重启Ubuntu系统
终端输入 sudo reboot
稍等片刻
再次打开终端
终端输入cat /usr/local/rc-local-info.log
感谢观看,欢迎各位小伙伴与我交流,相互学习。可能不会及时回复,但会关注各位的留言!