ubuntu18设置开机自启动

news/2024/11/15 8:35:09/

        项目需求:机器人开机上电后工控机首先运行机械臂控制代码,再运行算法代码

1.终端执行以下代码

gnome-session-properties

2.设置开机自启动选项

        在弹出界面点击添加,名称随便填,命令填入要启动的脚本,注释随便填。

gnome-terminal -- /home/txz/start.sh

3.开机自启动脚本start.sh

        开机后首先ping机械臂的ip地址,每隔5s ping一次,能ping通后执行机械臂蜷缩操作命令,然后再打开一个终端窗口,启动算法代码。

#!/bin/bash 
echo "$(date "+%Y-%m-%d %H:%M:%S") ceshila" >> /home/txz/screen.log
while true;doif ping -c 1 10.7.5.18 &> /dev/null;thenecho "$(date "+%Y-%m-%d %H:%M:%S") Ping successul. Starting Python script."echo "$(date "+%Y-%m-%d %H:%M:%S") Ping successful. Starting Python script." >> /home/txz/screen1.logpython3 /home/txz/arm_server/quansuo_position.pysleep 3python3 /home/txz/arm_server/quansuo_position.pysleep 1gnome-terminal -- /home/txz/8.17/401_serch-tcp_4/1_main_frame/build/test_demosleep 1python3 /home/txz/arm_server/server_nano.pybreakelseecho "$(date "+%Y-%m-%d %H:%M:%S") Ping unsuccessful.Retrying in 5 seconds."echo "$(date "+%Y-%m-%d %H:%M:%S") Ping unsuccessful.Retrying in 5 seconds." >> /home/txz/screen2.logsleep 5fi
done

 4.关机前操作代码stop.sh

        找到开机启动的代码命令,然后kill掉,再让机械臂恢复零位

#!/bin/bash# 查询命令的ID
command_name="python3"  # 替换为你要查询的命令名称
command_pid=$(pgrep "$command_name")if [ -z "$command_pid" ]; thenecho "未找到运行的命令: $command_name"
elseecho "找到运行的命令: $command_name (PID: $command_pid)"# 杀死命令kill -9 "$command_pid"echo "已杀死命令: $command_name (PID: $command_pid)"
fi
python3 /home/txz/arm_server/zero_position.py
sleep 3 
python3 /home/txz/arm_server/zero_position.py


http://www.ppmy.cn/news/1281681.html

相关文章

【Linux系统基础】(3)在Linux上部署运维监控Zabbix和Grafana

目录 运维监控Zabbix部署简介安装安装前准备 - Mysql安装Zabbix Server 和 Zabbix Agenta. 安装Zabbix yum库b. 安装Zabbix Server、前端、Agentc. 初始化Mysql数据库d. 为Zabbix Server配置数据库e. 配置Zabbix的PHP前端 配置zabbix 前端(WEB UI) 运维监…

C# 抽象类与接口

抽象类和接口是C#“封装、继承、多态”三大特性中比较重要的组成部分。抽象类和接口这两种类型用于完全不同的目的。抽象类主要用作对象的基类,贡献某些主要的特性,例如共同的目的和结构。接口则主要是用于类,为这些类去添加不同的方法&#…

WPF StackPanel

StackPanel是一个控件容器,它按照一个方向(水平或垂直)堆叠子元素,使得它们沿一个轴线对齐。你可以在StackPanel中放置其他控件,如按钮、标签、文本框、图片等等。这些控件的排列方式由StackPanel按照指定的方向自动确…

jQuery: 整理5---删除元素和遍历元素

1. 删除元素 span{color: white;padding: 8px;margin: 5px;float: left;}.green {background-color: green;}.blue {background-color: blue;}<span class"green">green</span><span class"blue">blue</span><span class"…

快速排序之C++实现

描述 快速排序是一种常用的排序算法&#xff0c;它的思想是选取一个基准元素&#xff0c;将数组分成左右两部分&#xff0c;使得左边的元素都小于等于基准元素&#xff0c;右边的元素都大于等于基准元素&#xff0c;然后递归地对左右两部分进行快速排序。 实现步骤 选择一个…

Arduino/Android 蓝牙通信系统设计解决方案

随着当今安全管理的发展需求以及国家对安全监控行业的支持&#xff0c;这几年&#xff0c;安全监控行业发展迅猛&#xff0c;各类监控系统百花齐放。传统的温度监控系统通过有线或其他方式传送温度数据&#xff0c;而本文提出了利用蓝牙无线传输数据的设计方案&#xff0c;这种…

Oracle 学习(2)

过滤和排序数据 where条件过滤 日期格式 查询10号部门的员工信息&#xff1a;SQL> select * from emp where deptno10 查询”KING”的信息&#xff1a;SQL> select * from emp where ename KiNg 未选定行。 注意&#xff1a;字符串大小写敏感。 SQL> selec…

数据仓库【4】:最佳实践

数据仓库【4】&#xff1a;最佳实践 1、表的分类1.1、事实表1.2、维度表1.3、事务事实表1.4、周期快照事实表1.5、累积快照事实表1.6、拉链表 2、ETL策略2.1、全量同步2.2、增量同步 3、任务调度3.1、为什么需要任务调度&#xff1f;3.2、常见任务类型3.3、常见调度工具 1、表的…