nohup python3 -u main.py >/dev/null 2>&1 &
这条命令用于在后台运行一个Python脚本,并且不会将输出显示在终端上。
**解释:**
- `nohup`:这个命令用于在终端关闭后继续运行指定的命令。通常用于长时间运行的任务。
- `python3 -u main.py`:这是执行Python脚本的命令,其中`-u`选项用于无缓冲模式运行Python脚本,即立即将输出刷到文件或标准输出。
- `>/dev/null`:将标准输出(即程序正常输出的信息)重定向到`/dev/null`,相当于将其丢弃。
- `2>&1`:将标准错误输出(即程序错误信息)重定向到标准输出,因为标准输出已经重定向到了`/dev/null`,所以错误信息也会被丢弃。
- `&`:将整个命令放到后台执行,这样你可以继续在当前终端会话中执行其他命令。
**总结:**
这条命令的效果是在后台执行`main.py`脚本,且不会在终端中显示任何输出(无论是正常输出还是错误信息)。
until python3 -u main.py; do echo "main.py crashed with exit code $?; restarting..."; sleep 1; done
你可以使用一条命令来实现自动重启 `main.py` 程序。可以利用 `until` 循环来实现这一点:
```bash
until python3 -u main.py; do echo "main.py crashed with exit code $?; restarting..."; sleep 1; done
```
**解释:**
1. **`until python3 -u main.py`**: `until` 循环会一直执行直到 `python3 -u main.py` 成功退出。如果 `main.py` 退出码是非零(即程序异常退出),`until` 循环会继续执行。
2. **`; do echo "main.py crashed with exit code $?; restarting..."`**: 当 `main.py` 崩溃时,输出提示信息,显示退出代码。
3. **`; sleep 1; done`**: 等待 1 秒,然后重新启动 `main.py`。
将这条命令直接复制到终端并执行即可,脚本将会在程序崩溃时自动重启 `main.py`。