在Ubuntu上编写一个开机自启动的Python脚本

2023-11-19

注意事项:如果脚本没有执行,首先应该考虑执行权限问题,查看脚本和相应的文件是否有执行权限,如果没有需要赋予执行权限。

方法1:

1.编写一个shell脚本文件,例如python_auto.sh,文件内容:

2.编写start.py文件,里面执行你需要服务器开启执行的操作

3.在 /etc/profile  这个文件中,添加shell脚本文件路径,例如:

在服务器开机时会自动执行 /etc/profile中的代码

 

注: linux随机启动的服务程序都在/etc/init.d这个文件夹里,里面的文件全部都是脚本文件,另外在/etc这个文件夹里还有诸如名为rc1.d, rc2.d一直到rc6.d的文件夹,这些都是linux不同的runlevel,我们一般进入的X windows多用户的运行级别是第5级,也就是rc5.d,在这个文件夹下的脚本文件就是运行第5级时要随机启动的服务程序。需要注意的是,在每个rc (1-6).d文件夹下的文件其实都是/etc/init.d文件夹下的文件的一个软连接,也就是说,在 /etc/init.d文件夹下是全部的服务程序,而每个rc(1-6).d只链接它自己启动需要的相应的服务程序! 还 需要注意的一点是,在rc5.d里,每个链接的名字都是以S或者K开头的,S开头的表示是系统启动是要随机启动的,K开头的是不随机启动的。这 样,你就可以知道,如果我要哪个服务随机启动,就把它名字第一个字母K改成S就可以了,当然,把S改成K后,这个服务就不能随机启动了。Ubuntu系统运行级别: 0  系统停机状态 1  单用户或系统维护状态 2~5 多用户状态 6  重新启动 

登录时自动运行程序: 用 户登录时,bash首先自动执行系统管理员建立的全局登录script :/ect/profile。然后bash在用户起始目录下按顺序查找三个特殊文件中的一个:/.bash_profile、/.bash_login、 /.profile,但只执行最先找到的一个。 因此,只需根据实际需要在上述文件中加入命令就可以实现用户登录时自动运行某些程序。 退出登录时自动运行程序: 退出登录时,bash自动执行个人的退出登录脚本/.bash_logout。

 

方法2:

在/etc/rc.local文件中添加一行:

/usr/bin/python2.7 /usr/local/qlya/timing_insert.py & 

&符号为让脚本后台运行,不在命令行显示结果

----------------------------------------------------------------------

方法3:

编写一个service,并让service开机自启动(CentOS 7)

/usr/lib/systemd/system/  目录下存储了很多以service为后缀的服务文件,systemctl就是根据这些服务文件来管理服务。

编写自己的服务文件test.service,然后放入该目录,EXP:

[Unit]
Description=test
Documentation=empty
After=network.target remote-fs.target nss-lookup.target mysqld.service

[Service]
Type=oneshot
PIDFile=/run/test.pid
ExecStartPre=
ExecStart=/apps/bin/python /apps/test.py
ExecReload=
ExecStop=
PrivateTmp=true

[Install]
WantedBy=multi-user.target

具体各项参数百度下即可,service文件编写完成后即可使用systemctl来管理。

systemctl enable test.service   # 该命令使服务开机自启动

那么开机后,systemctl工具会自动运行该服务文件中ExecStart参数填写的命令

方法4:针对Ubuntu18.04

最近在使用Ubutnu18.04,我突然发现没有rc.local文件了,原来是因为在新版本全部统一使用systemctl来管理服务了,开机自启动服务也不例外。

vim /lib/systemd/system/rc-local.service

# 添加install参数
[Install]  
WantedBy=multi-user.target  
Alias=rc-local.service

touch /etc/rc.local # 创建rc.local文件,默认没有创建

将需要开机自启动的命令写在rc.local中就可以了

systemctl status rc.local和systemctl status rc-local
你会发现用的是同一个service文件,即rc-local.service

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Ubuntu上编写一个开机自启动的Python脚本 的相关文章

随机推荐

  • Tensorflow之Estimator(二)实践

    1 前言 这篇文章介绍Tensorflow的高级API 模型的建立和简化过程 2 Estimator优势 本文档介绍了Estimator一种可极大地简化机器学习编程的高阶TensorFlow API 用了Estimator你会得到数不清的好
  • 一些JDK自带的性能分析利器

    有时候碰到服务器CPU飙升或者程序卡死之类的问题 一般都不太好定位 这类bug一般都隐藏的比较深并且还可能是偶发性的 比较棘手 对于此类问题 一般我们都有固定的分析流程 借助于JDK自带的一些分析工具 比如jstack jmap jstat
  • 超全汇总,性能测试常用指标大全(重要)

    目录 导读 前言 一 Python编程入门到精通 二 接口自动化项目实战 三 Web自动化项目实战 四 App自动化项目实战 五 一线大厂简历 六 测试开发DevOps体系 七 常用自动化测试工具 八 JMeter性能测试 九 总结 尾部小
  • 三相桥式全控整流电路仿真--(Matlab仿真2)

    仿真环境 Matlab 2018a 使用模块 1 Three Phase V I Measurement1 2 Multimeter 3 Universal Bridge 4 Selector 5 Mean 测量平均电压 6 Pulse G
  • pycharm如何连接数据库并往数据库插入内容

    1 创建connection对象 2 创建cursor对象 游标对象 主要用于操作数据库 3 执行查询 4 关闭cursor对象 5 关闭connection 首先要先安装pumysql库 pip install pymysql 连接测试
  • 微服务应用大行其道,我提供一个dto和entity转换工具类,方便大家做转换,少写机械代码,多陪陪家人...

    微服务应用大行其道 我提供一个dto和entity转换工具类 方便大家做转换 少写机械代码 多陪陪家人 该工具类主要是对dozer进行了封装 使用过程代码量极少 废话少说 贴代码了 import java util ArrayList im
  • 使用vscode编辑和提交github仓库代码

    写在前面 在github上想删除仓库中的某个文件或文件夹 亦或是重命名操作都很麻烦 这里提供一种vscode的解决方案 在vscode中克隆远程github仓库 然后对代码或文件进行编辑 最后提交即可 就和管理本地文件一样方便 准备工作 下
  • react.js的介绍

    关于React React部分的内容包含了所有授课的思路 React的起源和发展 React 起源于 Facebook 的内部项目 因为该公司对市场上所有 JavaScript MVC 框架 都不满意 就决定自己写一套 用来架设Instag
  • 计算机网络之数据链路层协议总结

    数据链路层 1 数据链路层介绍 2 ARP协议 2 1 ARP的工作流程 2 2 ARP数据报格式 3 NAT技术 3 1 NAT转换过程 3 2 NAPT技术 动态NAT重载 4 DNS技术 4 1 域名层级关系 4 2 域名解析流程 5
  • 程序员如何认识自己? 怎么知道自己适合做什么?人生路上的困惑 应不应该转行

    这个问题其实从毕业工作后就开始思考了 到底什么才是自己适合的工作 怎么才能从自己的工作当中找到兴趣 有朋友吐槽不喜欢现在的生活 不喜欢现在的工作 感觉不合适 如果被吐槽之后 我真的是按照套路去回答 嗯 我理解你 你现在肯定因为自己的生活和工
  • 自定义view之无限滚动的刻度尺

    具体思路是把一个view分成三段 当总长度 gt 40个刻度向左滚动 滚动到2 3的时候view移动到1 3出然后刷新显示的刻度这时为第一页 一次更新页数 当向右滚动的时候滚动且不为第一页则每滚动到1 3处view移动到2 3处 之后在添加
  • 第1090期AI100_机器学习日报(2017-09-12)

    AI100 机器学习日报 2017 09 12 神经网络机器翻译 NMT 实践笔记 爱可可 爱生活 如何在Chatbot中应用深度学习 ChatbotsChina 论文推荐 像CNN一样快速训练RNN 机器之心Synced 基于Libsvm
  • Django2 Postman 模拟POST提交,提示:Forbidden (CSRF cookie not set.) 403

    解决方法 去除django项目中settings py中的 MIDDLEWARE 的 django middleware csrf CsrfViewMiddleware 既可
  • QT的信号与槽原理(经典)

    QT的信号与槽原理 经典 信号与 槽作为 QT的核心机制在 QT编程中有着广泛的应用 本文介绍了信号与 槽的一些基本概念 元对象工具以及在实际使用过程中应注意的一些问题 QT是一个跨平台的C GUI应用构架 它提供了丰富的窗口部件集 具有面
  • .faust勒索病毒数据怎么处理

    引言 近年来 随着科技的迅猛发展 网络安全问题愈发突出 特别是勒索病毒的威胁日益严峻 其中 Faust勒索病毒作为一种新型的恶意软件 引起了全球范围内的广泛关注和担忧 本文91数据恢复将对Faust勒索病毒进行深入分析 探讨其传播方式 危害
  • 利用Python制作本地Excel的查询与生成的程序

    前言 大家好 今天教大家利用Python制作本地Excel的查询与生成的程序 需求 制作一个程序 有一个简单的查询入口 实现Excel的查询与生成 实验步骤 1打开一个exe 弹出一个界面 2有一个查询 卡号 点击查询 3下方展示查询的结果
  • 何谓离散制造

    离散制造 Intermittent Discrete Manufacturing 产品的生产过程通常被分解成很多加工任务来完成 每项任务仅要求企业的一小部分能力和资源 企业一般将功能类似的设备按照空间和行政管理建成一些生产组织 部门 工段或
  • plasma桌面特效无效的解决办法

    前段时间重装了Arch Linux 用了好看的Plasma桌面 但是最近这几天桌面特效突然没有了 让我非常郁闷 于是乎我开始动手排查起来 由于前几天折腾显卡驱动 最后还是没折腾成功 所以我一开始将问题定位到显卡驱动上 然后谷歌了各个显卡驱动
  • Mysql锁机制详解

    Mysql锁 在多线程当中如果想保证数据的准确性是如何实现的呢 没错 通过同步实现 同步就相当于是加锁 加了锁以后有什么好处呢 当一个线程真正在操作数据的时候 其他线程只能等待 当一个线程执行完毕后 释放锁 其他线程才能进行操作 那么我们的
  • 在Ubuntu上编写一个开机自启动的Python脚本

    注意事项 如果脚本没有执行 首先应该考虑执行权限问题 查看脚本和相应的文件是否有执行权限 如果没有需要赋予执行权限 方法1 1 编写一个shell脚本文件 例如python auto sh 文件内容 2 编写start py文件 里面执行你