这个对已经运行中的进程生不生效
时间: 2024-02-26 19:58:26 浏览: 51
通过python 执行 nohup 不生效的解决
对于已经运行中的进程,上述方法设置的全局默认错误输出并不会生效。因为该方法是在 shell 中设置的,只能影响在该 shell 中启动的程序。而对于已经在其他 shell 或后台运行的程序,它们的错误输出仍然会被输出到原来的默认设备中。
如果需要对已经运行中的进程生效,可以使用 `nohup` 命令或者 `disown` 命令,将进程从当前 shell 中脱离出来,使其成为一个守护进程。然后再使用重定向符号将其错误输出重定向到指定的文件中。
例如,将一个 long_running_script.sh 脚本转换成守护进程,并将其错误输出重定向到 error.log 文件中,可以使用以下命令:
```
nohup ./long_running_script.sh > output.log 2> error.log &
```
或者
```
./long_running_script.sh > output.log 2> error.log &
disown
```
上述命令会将脚本转换为一个守护进程,并将其标准输出重定向到 output.log 文件中,标准错误输出重定向到 error.log 文件中。这样即使关闭当前 shell,该脚本也会继续在后台运行,并将错误输出写入指定的文件中。
阅读全文