rc.local 添加 多个 sh脚本
时间: 2024-01-22 14:38:41 浏览: 77
您可以将多个 sh 脚本的路径以空格分隔,放在 rc.local 文件中的相应位置。例如:
```bash
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
# Start multiple scripts
/bin/sh /path/to/script1.sh &
/bin/sh /path/to/script2.sh &
/bin/sh /path/to/script3.sh &
exit 0
```
请注意,在每个脚本的末尾使用 `&` 来使脚本在后台运行,以避免一个脚本阻塞 rc.local 中后续的脚本。
相关问题
ubuntu20.04 rc.local以sudo方式运行脚本
在 Ubuntu 20.04 中,`rc.local` 文件已经被弃用了,因此您需要使用其他方法来实现以 `sudo` 方式运行脚本。
一种方法是使用 `systemd` 的 `systemctl` 命令来启动您的脚本。您可以创建一个 `systemd` 的服务单元文件,该文件指定要执行的命令和必要的依赖项。以下是一个简单的示例:
1. 创建一个新的服务单元文件 `/etc/systemd/system/my-script.service`,并使用您喜欢的文本编辑器打开它:
```
sudo nano /etc/systemd/system/my-script.service
```
2. 将以下内容复制并粘贴到文件中:
```
[Unit]
Description=My script
[Service]
Type=simple
ExecStart=/path/to/your/script.sh
User=root
[Install]
WantedBy=multi-user.target
```
其中,`ExecStart` 指定要执行的脚本的路径和名称,`User` 指定以哪个用户的身份运行该脚本。
3. 保存并关闭文件。
4. 启动服务并设置它在系统启动时自动启动:
```
sudo systemctl start my-script
sudo systemctl enable my-script
```
现在,您的脚本将以 `sudo` 权限在系统启动时运行。您可以使用 `systemctl` 命令来管理该服务。例如,要停止该服务,请运行:
```
sudo systemctl stop my-script
```
按照以上步骤都检查了,没问题,手动执行 /etc/rc.d/rc.local 脚本 ,也没有任何错误提示!还是不能执行自定义脚本
如果你已经按照以上步骤检查了,并且手动执行 `/etc/rc.d/rc.local` 脚本没有问题,但自定义脚本仍然无法执行,你可以尝试以下方法:
1. 检查 `/etc/rc.d/rc.local` 文件是否被正确调用。在 `/etc/rc.d/rc.local` 文件中添加一行 `echo "Script executed"`,并重启系统后查看是否有输出。这样可以确认 `/etc/rc.d/rc.local` 文件是否被启动时调用。
2. 确保自定义脚本的路径正确。在 `/etc/rc.d/rc.local` 文件中,使用绝对路径调用你的自定义脚本。例如,`/path/to/your/script.sh`。
3. 检查自定义脚本的执行环境。有时候自定义脚本可能依赖于特定的环境变量或工作目录。尝试在 `/etc/rc.d/rc.local` 文件中切换到脚本所在的目录,并设置必要的环境变量。
4. 检查系统日志以查看是否有与脚本执行相关的错误消息。可以使用 `dmesg` 命令或查看 `/var/log/messages` 或 `/var/log/syslog` 文件来查看系统日志。
如果问题仍然存在,请提供更多详细信息,例如 `/etc/rc.d/rc.local` 文件的内容、自定义脚本的内容以及执行过程中的完整输出,以便我能更好地帮助你解决问题。
阅读全文