本文创建自启动程序的整体思路是利用ubuntu系统自带的自启动软件,启动应用程序,在应用程序中放置需要自启动的脚本。

创建思路是 shell脚本文件--->自启动配置

一、自启动脚本文件

1、创建

终端进入你要创建脚本的文件夹  创建脚本文件

touch autoaim.sh

使用vi/nano/gedit编辑器,也可以直接点开创建的文件记事本里编辑。

2、插入一个shell介绍

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。

Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。

总而言之,shell文件就是一个用C语言编写的可运行的应用程序,我们平时运行的很多配置后缀为.bash和.sh的文件就是shell文件,文件将执行其所包括的shell脚本代码。

接下来就正式开始编辑这个脚本文件。

3、编写shell脚本

第一行 

#!/bin/bash

 #! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即 使用哪一种 Shell。

Linux 的 Shell 种类众多,常见的有:

  • Bourne Shell(/usr/bin/sh或/bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • Shell for Root(/sbin/sh)
  • ……

 所以上述代码也可以使用 #!/bin/sh

编写自启动脚本

如果只是一个能在终端中启动的脚本,那么可以直接把终端里要执行的命令放在脚本里,如下一整个指令

#!/bin/bash

PASSWORD="123456"

echo $PASSWORD | sudo chmod 777 ttyAM0

cd /home/onzonzonz/ws_autoaim/

source install/setup.bash

ros2 launch autoaim_main autoaim_main autoaim_main_launch.py

其中有一点,因为使用sudo权限需要输入密码,所以须在前面加密码指令

开权限

chmod +x autoaim.sh 

 终端进入放着这个文件的文件夹运行程序试试

./autoaim.sh

成功运行,编写完成。

4、另一个shell脚本

但是,为了开机后运行的命令打开终端执行,你需要写一段打开终端并执行命令的代码,并把上述所有命令放进去,像下面这样。

但是,因为我有一个启动管理员权限的指令,密码输入会不正确,所以最后选择了另开一个启动脚本来启动终端和上一个配置脚本。

保持上述autoaim.sh脚本不变,创建另一个.sh文件“zimain.sh”内容如下

#!/bin/bash

gnome-terminal -- /bin/bash -c '/home/onzonzonz/sh/autoaim.sh ; exec bash'

 前半句命令的意思是打开一个新的终端,运行程序

exec命令放到一个子shell脚本中,在父sehll中调用这个子shell脚本,调用处可以用bash xx.sh(xx.sh为存放exec命令的脚本),这样会为xx.sh建立一个子shell去执行,当执行exec后该子shell进程就被替换成相应的exec的命令。

再开权限

chmod +x zimain.sh

再测试一下 

./zimain.sh

成功运行 脚本制作完毕 

二、自启动设置

设置系统启动项的步骤都有点复杂,但使用用户自启动有很简单的方法。

在桌面上找到“自启动应用”或者“Startup Applications”这个应用。

如果应用程序列表中没有开机自动启动应用这个app,那么使用组合键Alt+F2,输入gnome-session-properties亦可打开同样的界面。

点击“Add”,把所写的第二个启动文件的路径填到“Command”里即可。(可以直接点右边"browse..."选中启动文件)

关机重启 程序成功运行

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐