ubuntu22.04自启shell脚本
时间: 2025-05-09 13:07:52 浏览: 43
### Ubuntu 22.04 中设置 Shell 脚本开机自启动的方法
在 Ubuntu 22.04 中,可以通过多种方式实现 Shell 脚本的开机自启动功能。以下是具体的操作方法:
#### 方法一:通过 systemd 创建服务单元文件
这是推荐的方式之一,适用于需要更精细控制的服务。
1. **编写启动脚本**
将要运行的脚本保存到指定路径,例如 `/usr/software/eurekaService.sh`[^1]。
```bash
#!/bin/bash
echo "Starting Eureka Service..."
java -jar /path/to/your/application.jar &
```
2. **赋予脚本可执行权限**
使用 `chmod` 命令为该脚本分配可执行权限[^2]。
```bash
sudo chmod +x /usr/software/eurekaService.sh
```
3. **创建 systemd 服务文件**
编辑一个新的 `.service` 文件来定义此脚本的行为。
```bash
sudo nano /etc/systemd/system/eurekaservice.service
```
在文件中写入如下内容:
```ini
[Unit]
Description=Eureka Service Auto Start
After=network.target
[Service]
ExecStart=/usr/software/eurekaService.sh
Restart=always
User=root
[Install]
WantedBy=multi-user.target
```
4. **启用并启动服务**
启用服务以便其随系统一起启动,并立即测试它是否正常工作。
```bash
sudo systemctl daemon-reload
sudo systemctl enable eurekaservice.service
sudo systemctl start eurekaservice.service
```
#### 方法二:使用 crontab 的 @reboot 功能
Cron 是一种定时任务工具,在其中可以利用特殊标记 `@reboot` 来安排脚本在每次重启时自动运行。
1. 打开当前用户的 cron 表单编辑器。
```bash
crontab -e
```
2. 添加一行命令以调用目标脚本。
```cron
@reboot sleep 10 && bash /usr/software/eurekaService.sh >> /var/log/eureka.log 2>&1
```
这里增加了短暂延迟 (`sleep 10`) 和日志记录选项,确保网络和其他依赖项已准备好再执行脚本。
#### 方法三:修改 rc.local 文件
尽管现代版本中的默认行为可能禁用了这个机制,但仍然可以选择重新激活它作为另一种解决方案。
1. 安装必要的包(如果尚未安装)。
```bash
sudo apt update
sudo apt install sysvinit-utils
```
2. 修改或新建 `/etc/rc.local` 文件的内容。
```bash
sudo nano /etc/rc.local
```
插入以下行之前记得确认有正确的 shebang 并保持退出状态码返回零。
```bash
#!/bin/bash
/usr/software/eurekaService.sh
exit 0
```
3. 设置适当权限以及通知 init 系统加载更改。
```bash
sudo chmod +x /etc/rc.local
sudo systemctl enable rc-local
sudo systemctl start rc-local
```
以上三种方案均可满足需求,实际应用可根据具体情况选择最合适的办法实施。
阅读全文
相关推荐



















