linux 下有多个不同目录的脚本restart.sh ,要求每次启动都执行这个脚本
时间: 2024-09-23 12:13:20 浏览: 18
在Linux下,如果你有多个名为`restart.sh`的脚本分别位于不同的目录中,想要在每次系统启动时自动执行它们,你可以按照以下步骤配置:
1. **添加到启动脚本路径**:
- **Systemd**: 如果你的系统基于 systemd,可以在 `/etc/systemd/system/multi-user.target.wants/` 或 `/etc/init.d/` 目录下创建链接指向这些脚本。例如,如果有一个脚本在 `/dir1/restart.sh`,可以运行 `ln -s /dir1/restart.sh /etc/init.d/restart1` 然后编辑 `/etc/systemd/system/multi-user.target.wants/restart1.service` 来设置启动和停止规则。
2. **cron定时任务**:
- 使用cron定时器可以在系统启动时定期执行。打开crontab文件,通常是通过命令 `crontab -e`,然后添加类似以下行:
```
@reboot /usr/bin/bash /dir2/restart.sh
```
这会使得`restart.sh`脚本在系统启动时执行,替换 `/dir2/restart.sh`为你实际脚本的位置。
3. **shell profile脚本**:
- 在用户的`~/.bashrc`, `~/.bash_profile` 或 `~/.zshrc`等个人初始化脚本中加入执行相应脚本的命令。例如:
```bash
if [ ! -f ~/.my_init_done ]; then
# Execute restart scripts from different directories here
/dir1/restart.sh
/dir2/restart.sh
touch ~/.my_init_done
fi
```
需要注意的是,只有当用户首次登录时才会执行这部分代码。