linux下实现电脑开机后软件自启动
实现linux的软件自启动,需要四个文件
第一个【displayScreen.desktop】文件,.desktop文件就是一个用来运行程序的快捷方式,也叫启动器,常用来自启动用的文件,内容如下
[Desktop Entry]
#要执行的脚本位置
Exec=/home/yicaobao/test/mySoftware/DisplayScreen_Daemon.sh
#图标
Icon=/home/yicaobao/test/mySoftware/resource/logo/discreen-IV.png
Name=DisplayScreen
Name[zh_CN]=DisplayScreen
Terminal=false
Type=Application
X-Deepin-Vendor=user-custom
第二个文件【DisplayScreen_Daemon.sh】为检测软件是否启动的守护脚本文件,如果软件被杀死了,会被检测到,自动重启,可以自己改想要的效果,一下脚本代码为10s校测一次改软件进程,如果进程不存在就拉起软件
需要指定下要运行的程序名APP_NAME,路径APP_PATH
#! /bin/sh#获取当前路径
currentPath=$(cd `dirname $0`; pwd)#进程名字可修改
APP_NAME=DisplayScreen
APP_PATH=${currentPath}/bin/${APP_NAME}while true ; do#用ps获取$PRO_NAME进程数量APP_NUM=`ps aux | grep -w ${APP_NAME} | grep -v grep |wc -l`#少于1,重启进程if [ ${APP_NUM} -lt 1 ];thenecho "${APP_PATH} was killed"${APP_PATH} &#大于1,杀掉所有进程,重启elif [ ${APP_NUM} -gt 1 ];thenecho "more than 1 ${APP_PATH},killall ${APP_PATH}"pkill -9 $APP_NAME${APP_PATH} &fi#kill僵尸进程
# ps aux | grep -w DisplayScreen | grep T | grep -v grep | wc -l
# ps -A -ostat,cmd | grep -e '^[zZ]' | grep -w DisplayScreen | grep -v grep | wc -lNUM_STAT=`ps -A -ostat,cmd | grep -e '^[zZ]' | grep -w ${APP_NAME} | grep -v grep | wc -l`if [ ${NUM_STAT} -gt 0 ];thenecho "pkill -9 ${APP_NAME}"pkill -9 ${APP_NAME}${APP_PATH} &fisleep 10sdoneexit 0#备注
# grep T 含义:T为输出行前缀控制,确保实际行内容的第一个字符位于制表位上,以便选项卡看起来很正常,好像不加也没影响
# grep -v grep 含义:很简单 ,为了去除包含grep的进程行 ,避免影响最终数据的正确性
第三个文件【install.sh】为安装启动器的脚本,执行脚本后,会将启动器拷贝到启动目录下,开机会自动执行这个启动器
#!/bin/sh#设置开机自动启动
echo "开始设置开机启动"
sudo cp ./DisplayScreen.desktop /etc/xdg/autostartecho "安装完毕,重启后生效"
第四个文件【uninstall.sh】为卸载启动器的脚本,执行后,开机后软件就不会自启动了
#!/bin/sh#结束所有程序
sudo killall DataAcq
#移除开机自动启动
echo "移除开机自动启动"
sudo rm /etc/xdg/autostart/DisplayScreen.desktopecho "DisplayScreen卸载完毕"
我的要自启动的程序在bin目录下

执行下,守护脚本,软件就起来了

原理就是,建立一个启动器,把启动器放到开机启动区域,开机后,会把这个区域的启动器都执行一遍,所以我们只需要把启动器【DisplayScreen.desktop】的内容设为执行这个守护脚本【DisplayScreen_Daemon.sh】就行了
大功告成!
相关文章:
linux下实现电脑开机后软件自启动
实现linux的软件自启动,需要四个文件 第一个【displayScreen.desktop】文件,.desktop文件就是一个用来运行程序的快捷方式,也叫启动器,常用来自启动用的文件,内容如下 [Desktop Entry] #要执行的脚本位置 Exec/home/yicaobao/te…...
【C/PTA】循环结构进阶练习(二)
本文结合PTA专项练习带领读者掌握循环结构,刷题为主注释为辅,在代码中理解思路,其它不做过多叙述。 7-1 二分法求多项式单根 二分法求函数根的原理为:如果连续函数f(x)在区间[a,b]的两个端点取值异号,即f(a)f(b)<0…...
Visual Studio 2010 软件安装教程(附下载链接)——计算机二级专用编程软件
下载链接: 提取码:2wAKhttps://www.123pan.com/s/JRpSVv-9injv.html 安装步骤如下: 1.如图所示,双击打开【Visual Studio 2010简体中文旗舰版】文件夹 2.如图所示,找到“Setup”文件夹打开,双击运行“setup” 3.如图…...
大促来袭 零点价格如何监测
双十一大促即将到来,各大品牌、店铺都会非常关注价格,这个时候的促销信息会很复杂,平台促销、店铺促销等,不同的优惠信息涉及的券也会很多,同时各优惠券关联的时间点也会不同,有些券零点能用,有…...
python 之 正则表达式模块re
文章目录 findall例子:特点和注意事项: match示例:match 对象的方法和属性:注意事项: search示例:match 对象的方法和属性:注意事项: split示例:参数说明:注意…...
vue项目npm install报错解决
一、报错信息 node-sass4.14.1 postinstall: node scripts/build.js 二、解决方式 (1)删除未成功安装的 node_modules 文件; (2)为 node-sass 单独设置镜像源; npm config set sass_binary_sitehttps:/…...
ubuntu挂载共享目录的方法
ubuntu挂载共享目录的方法 安装NFS配置NFS 安装NFS sudo apt-get install nfs-kernel-server配置NFS 创建work共享目录:(本人将此文件放在桌面)sudo mkdir worksudo gedit /etc/exports添加: /home/zynq/Desktop/work *(rw,sync,no_root_squash,no_subtree_check)运行以下命…...
累计概率分布、概率分布函数(概率质量函数、概率密度函数)、度量空间、负采样(Negative Sampling)
这里写自定义目录标题 机器学习的基础知识累计概率分布概率分布函数度量空间负采样(Negative Sampling)基于分布的负采样(Distribution-based Negative Sampling):基于近邻的负采样(Neighbor-based Negativ…...
〔001〕虚幻 UE5 安装教程
✨ 目录 🎈 下载启动程序🎈 注册个人账户🎈 选择引擎版本🎈 选择安装选项🎈 虚幻商城的使用🎈 每月免费插件🎈 安装插件🎈 下载启动程序 下载地址:https://www.unrealengine.com/zh-CN/download点击上面地址,下载 UE5 启动程序并安装🎈 注册个人账户 打开商…...
Crypto(8) BUUCTF-bbbbbbrsa1
题目描述: from base64 import b64encode as b32encode from gmpy2 import invert,gcd,iroot from Crypto.Util.number import * from binascii import a2b_hex,b2a_hex import randomflag "******************************"nbit 128p getPrime(nbit)…...
软件测试之随机测试详解
在软件测试中除了根据测试用例和测试说明书进行功能测试外,还需要进行随机测试,随机测试是没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试。主要是根据测试者的经验对软件进行功能和性能抽查。随机测试是根据测试说明书执行测试用例的重要…...
【广州华锐互动】3D全景虚拟旅游在文旅行业的应用场景
随着科技的不断发展,3D全景虚拟旅游正在成为一种新兴的旅游体验方式,它可以帮助旅游者更加深入地了解旅游信息,提升旅游体验。下面我们将详细介绍3D全景虚拟旅游可以应用于哪些场景。 一、旅游规划 3D全景虚拟旅游可以帮助旅游者更加直观地进…...
多目标跟踪算法 实时检测 - opencv 深度学习 机器视觉 计算机竞赛
文章目录 0 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习多目标跟踪 …...
深入了解Jedis:Java操作Redis的常见类型数据存储
目录 前言 一、Jedis介绍 1.Jedis在各方面的功能 2.特点 二、Java连接Redis 1.导入pom依赖 2.建立连接 三、Java操作Redis的常见类型数据存储 1.字符串 2.哈希表 3.列表 4.集合 5.有序集合 四、Redis的实际应用场景实例 1.会议信息实体 2.自定义注解 3.创建切面…...
angular+ionic+npm项目运行
angularionicnpm项目运行 错误记录(1)Downloading binary from https://github.com/sass/node-sass/releases/download/v4.14.1/win32-x64-72_binding.node(2)The npm warning "A requires a peer of B but none is installe…...
【数据库】数据库模式 Schema
数据库模式 Schema 1.MySQL2.PostgreSQL3.SQL Server4.Oracle5.SQLite 在数据库的术语中,模式(schema)是一个逻辑概念,用于组织数据库中的对象。模式中的对象通常包括 表、索引、数据类型、序列、视图、存储过程、主键、外键 等等…...
RPC 原理详解
文章目录 什么是 RPCRPC 基本原理RPC核心功能服务寻址数据编解码网络传输一次RPC的调用过程 实践基于HTTP协议的RPC基于TCP协议的RPC 什么是 RPC RPC(Remote Procedure Call),即远程过程调用,它允许像调用本地服务一样调用远程服…...
新版Helix QAC 100%覆盖MISRA C++:2023
Helix QAC 2023.3预期将100%覆盖在2023年第四季度发布的新的MISRA C:2023规则。 此外,该版本支持更多的C20语言特性,并改进了Perforce Validate平台和Helix QAC与Validate的集成,以及其他质量改进。 编码标准覆盖率(MISRA C:202…...
maven 项目添加 git-hook 脚本,约束提交内容格式
git 提交代码,推送代码,可以通过在 .git/hooks 目录中的 bash 脚本来做一定的验证工作。 本例使用插件 maven-antrun-plugin 自动输出脚本至 .git/hooks 目录中,在 pom.xml 中的使用示例如下: <plugin><groupId>org.…...
18、Flink的SQL 支持的操作和语法
Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…...
Leather Dress Collection 企业级参数调优指南:平衡响应速度与生成质量
Leather Dress Collection 企业级参数调优指南:平衡响应速度与生成质量 如果你正在考虑把Leather Dress Collection这类大模型服务搬到公司的生产环境里,那你肯定遇到过这样的纠结:调快了,生成的内容质量好像会打折扣;…...
TEdit终极指南:如何用免费地图编辑器10倍提升泰拉瑞亚创作效率
TEdit终极指南:如何用免费地图编辑器10倍提升泰拉瑞亚创作效率 【免费下载链接】Terraria-Map-Editor TEdit - Terraria Map Editor - TEdit is a stand alone, open source map editor for Terraria. It lets you edit maps just like (almost) paint! It also let…...
实战应用:基于快马平台开发具备origin高级分析功能的在线工具
今天想和大家分享一个最近用InsCode(快马)平台做的实战项目——开发一个具备Origin高级分析功能的在线工具。作为一个经常需要处理实验数据的科研狗,Origin这类软件的分析功能确实强大,但每次都要安装本地软件实在麻烦。于是就想试试能不能做个在线版&am…...
父子进程变量地址相同值却不同?图解Linux写时拷贝与页表机制
父子进程变量地址相同值却不同?图解Linux写时拷贝与页表机制 你是否曾在Linux环境下遇到过这样的现象:通过fork()创建的子进程与父进程打印同一个全局变量的地址时,两者的地址值完全相同,但实际读取的变量值却不同?这个…...
如何通过手机号快速查询QQ号:3分钟解决账号遗忘难题
如何通过手机号快速查询QQ号:3分钟解决账号遗忘难题 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 在数字时代,QQ账号作为重要的社交和工作工具,其安全性与可访问性至关重要。然而,更…...
如何用Nucleus Co-Op实现本地多人游戏:5个维度解析开源工具的技术突破与应用价值
如何用Nucleus Co-Op实现本地多人游戏:5个维度解析开源工具的技术突破与应用价值 【免费下载链接】nucleuscoop Starts multiple instances of a game for split-screen multiplayer gaming! 项目地址: https://gitcode.com/gh_mirrors/nu/nucleuscoop 当你和…...
别再只用Wireshark了!用Cain Abel在Windows上5分钟复现ARP欺骗攻击(附实战截图)
从Wireshark到Cain & Abel:用经典工具5分钟掌握ARP欺骗核心原理 如果你已经能用Wireshark分析网络流量,却对ARP欺骗的原理一知半解,那么这款诞生于2002年的老牌工具Cain & Abel会让你眼前一亮。不同于现代抓包工具的被动观察…...
AD20 原理图与PCB的协同设计:从单向更新到双向同步的进阶指南
1. AD20协同设计的基础概念 刚接触AD20时,最让我头疼的就是原理图和PCB之间的同步问题。记得第一次做多板卡项目,光是处理不同原理图之间的元件冲突就折腾了一整天。AD20的协同设计功能远比我们想象的强大,但要用好它,得先理解几个…...
STM32定时器时基单元详解:从PSC到ARR的完整配置指南(附代码)
STM32定时器时基单元实战指南:从寄存器配置到精准延时实现 在嵌入式开发中,定时器是最基础也最核心的外设之一。无论是简单的LED闪烁控制,还是复杂的电机PWM驱动,都离不开定时器的精准计时功能。对于STM32开发者来说,掌…...
SinricPro Business SDK:面向量产的ESP32物联网固件开发套件
1. SinricPro Business SDK 概述SinricPro Business SDK 是专为商业化物联网产品设计的嵌入式软件开发套件,其核心定位并非面向 hobbyist 的快速演示工具,而是面向量产级硬件产品的固件基础设施。与社区版 SinricPro SDK 不同,Business SDK 在…...
