centos7开机发送ip到邮箱
环境,本地的虚拟机(服务器上还没试过)


1 创建python程序
新建文件夹 /home/centos7/Desktop/ipSend
新建iptest.py
新建emiltest.py
新建main.py
新建wenben.txt 内容为空
2 添加程序为服务
用root用户新建/usr/lib/systemd/system/ipSend.service(非root权限无法查看和修改此目录内内容)
Description 一段注释性文字
Type=idel 启动类型,等其他服务完成再执行此服务
ExecStart=启动方式(python安装目录) (python程序位置)
WantedBy=multi-user.target 默认的,不太懂
重新加载服务(不行就重启一下)
systemctl daemon-reload
这里就可以看到创建的服务了
3 配置开机自启服务

systemctl is-enabled ipSend 查看ipSend服务是否开机自启
systemctl enable ipSend 设置ipSend服务开机自启
开机后可以查看服务状态


问题:程序开机时用python启动,wenben.txt会成功写入数据。但是在启动时自动运行却不会写入文本,中间从文件读取数据却能读取成功,就算最后没有把文本数据清空,开机后文本内容还是为空。就好像一直在内存操作一样,从没真实写入过文件。不懂,有没有大佬解释一下
参考:
Systemd 入门教程:实战篇 - 阮一峰的网络日志 (ruanyifeng.com)
http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html
在Linux把一个python程序当做自定义服务运行
https://blog.csdn.net/weixin_42261372/article/details/107544708