ubuntu开机自启动sh脚本
时间: 2024-11-28 11:13:18 浏览: 58
Ubuntu系统中,要让.sh脚本在每次开机时自动执行,你可以将脚本添加到系统的启动流程中。以下是步骤:
1. 首先,确认你的.sh脚本有执行权限。打开终端,导航至包含脚本的文件夹,并运行 `chmod +x script_name.sh`,这里把 "script_name.sh" 替换为你实际的脚本名。
2. 创建一个新的启动服务文件 (init.d 或 systemd)。对于较旧的Ubuntu版本(Debian系列),在 `/etc/init.d` 目录下创建一个新文件,例如 `myscript`。内容类似于:
```bash
#!/bin/sh
# /etc/init.d/myscript
# 定义服务名称
DESC="My Script"
PATH=/usr/bin:/bin:/sbin:/usr/local/bin
SCRIPT="/path/to/your/script_name.sh" # 把"/path/to/your/"替换为脚本的实际路径
# 启动函数
start() {
echo -n $"Starting $DESC: "
if [ ! -x "$SCRIPT" ]; then
echo "Script does not exist."
exit 1
fi
"$SCRIPT" &> /dev/null
RET=$?
[ $RET -eq 0 ] && touch /var/lock/subsys/$DESC || echo "Failed to start."
}
# 确保脚本可以被停止
stop() {
echo -n $"Stopping $DESC: "
killall -q "$DESC" || true
sleep 1 && rm -f /var/lock/subsys/$DESC
echo "Done."
}
# 设置默认操作
case "$1" in
start)
start
;;
stop)
stop
;;
restart|force-reload)
stop
start
;;
*)
echo "Usage: /etc/init.d/myscript {start|stop|restart|force-reload}"
exit 1
;;
esac
# 检查状态并显示结果
status() {
if [ -e /var/lock/subsys/$DESC ]; then
echo "$DESC is running."
else
echo "$DESC is stopped."
fi
}
...
# 添加到这里的内容按照init.d规范填写,然后保存并设置权限:
chmod +x /etc/init.d/myscript
update-rc.d myscript defaults 95 10
```
3. 使用 `sudo update-rc.d myscript defaults 95 10` 来设置脚本的开机自启动顺序,其中95表示启动级别,10代表开机启动。
4. 最后,通过 `sudo service myscript start` 命令检查是否已成功添加到开机自启动列表。
阅读全文