Ubuntu22.04工控机发送IP至邮箱
整体过程与树莓派相同,在程序开机自启动的设置上略有区别。
一、写Python脚本
使用send_ip.py脚本。
二、设置开机自动执行该脚本
执行 ls /lib/systemd/system
你可以看到有很多启动脚本,其中就有我们需要的 rc-local.service
执行sudo vim /lib/systemd/system/rc-local.service
打开 rc-local.service脚本内容,内容如下:
一般正常的启动文件主要分成三部分
- [Unit] 段: 启动顺序与依赖关系
- [Service] 段: 启动行为,如何启动,启动类型
- [Install] 段: 定义如何安装这个配置文件,即怎样做到开机启动
可以看出,/etc/rc.local 的启动顺序是在网络后面,但是显然它少了 Install 段,也就没有定义如何做到开机启动,所以显然这样配置是无效的。 因此我们就需要在后面帮他加上 [Install] 段:
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
PS:添加了[Install]内容后,下面两行的WantedBy和Alias两个英文跟上面的都是绿色的,要是绿色才有用。
rc-local.service修改权限
一般需要先修改rc-local.service的权限才可以进行编辑。
方法一:
sudo chmod 777 /lib/systemd/system/rc-local.service
方法二:
先找到rc-local.service文件
打开后发现无法编辑,原因是权限为只读,并且无法更改权限。
一个极端的方法:在终端输入
sudo -s
然后输入密码,获取root身份,然后输入
nautilus
会以root身份弹出文件管理器,这时候就可以修改文件的权限了。修改完之后关闭,再打开文件管理器权限就修改好了。
(330条消息) ubuntu 权限问题_不是所有者,所以不能更改权限_MartianCoder的博客-CSDN博客
系统中新建/etc/rc.local 这个文件,默认是没有的
然后把我的挂载命令。写入 /etc/rc.local ,待会重启,以便验证是否生效.
PS:#!/bin/sh 这一行一定要加上!一定要加上!
给rc.local加上权限
sudo chmod +x /etc/rc.local
做完这一步,还需要最后一步 前面我们说 systemd 默认读取 /etc/systemd/system 下的配置文件, 所以还需要在 /etc/systemd/system 目录下创建软链接
ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/
最后重启Ubuntu后,df -h 看我需要开机启动挂在nfs成功没。
肯定成功了,不然写锤子
备注:
如果在 /etc/rc.local 中添加的是 ./test.sh 这种脚本类型的,要在末尾加上&,如下图, 不然重启ubuntu的时候会卡在启动界面进不去系统
2)rc.local 文件
创建 rc.local 文件
$ sudo vim /etc/rc.local
文件内容:
#!/bin/sh
# 这里添加要开机执行的脚本和命令等等
sudo python3 /home/a/send_ip.py &
exit 0
添加可执行权限
$ sudo chmod +x /etc/rc.local
3)创建软链接
$ sudo ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service
重启系统 rc.local 就生效了。
注意事项
不要在 rc.local 文件中添加阻塞或者死循环操作,会进不了系统的,试试就逝世。