马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
让脚本跟着 Ubuntu 开机自动跑,思路很朴素:先写一个 shell 脚本,再把它的路径填进系统的「自启动应用」。拆成这两步,比去动 systemd 服务文件省事得多。
一、写自启动脚本
进入想放脚本的目录,创建空文件:
touch autoaim.sh
用 vi / nano / gedit 打开编辑,或直接右键新建文本改后缀也行。
二、先认识 shell
Shell 是用 C 语言写的程序,是用户访问 Linux 内核服务的桥梁,既是一种命令语言,也是一种程序设计语言。常见的 shell 有 Bourne Shell(/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)等。我们平时跑的 .sh / .bash 文件就是 shell 脚本,执行时由解释器逐行跑里面的代码。
三、写脚本内容
第一行固定写:
#!/bin/bash
#! 是约定标志,告诉系统用哪个解释器执行;换 #!/bin/sh 也可以。要开机启动的终端命令直接堆进去:
#!/bin/bash
PASSWORD="123456"
echo $PASSWORD | sudo chmod 777 /dev/ttyAM0
cd /home/onzonzonz/ws_autoaim/
source install/setup.bash
ros2 launch autoaim_main autoaim_main_launch.py
用到 sudo 的地方要输密码,脚本里就得先把密码喂进去。然后开权限、跑一遍验证:
chmod +x autoaim.sh
./autoaim.sh
四、想要终端窗口?再包一层
如果希望开机后弹出一个终端窗口在里头跑,就再写一个启动脚本 zimain.sh:
#!/bin/bash
gnome-terminal -- /bin/bash -c '/home/onzonzonz/sh/autoaim.sh; exec bash'
前半句开新终端跑程序;后面的 exec 把子 shell 换成目标命令——bash xx.sh 会为 xx.sh 建一个子 shell 执行,exec 之后该子 shell 进程就被替换成 exec 的命令,这样窗口不会因为主 shell 结束而关掉。同理:
chmod +x zimain.sh
./zimain.sh
五、加进自启动
桌面里找到「自启动应用」(Startup Applications);列表里没有的话按 Alt + F2 输入 gnome-session-properties,打开的是同一个界面。点 Add,把第二个启动脚本(zimain.sh)的路径填进 Command,也可以点右边 browse 直接选中文件。
关机重启,脚本就该自己跑起来了。这类做法适合个人机器与开发调试;要上生产,还是把启动逻辑写进 systemd unit 更可控——重启失败能拉起、有日志 。
qidao123.com企服评测-应用市场 编辑提示 |