重定向运行中的进程的标准错误输出
时间: 2024-02-26 18:58:29 浏览: 93
可以使用 `gdb` 工具来重定向运行中的进程的标准错误输出。具体步骤如下:
1. 找到要重定向的进程的进程号(PID)。可以使用 `ps` 命令或者 `pgrep` 命令来查找进程号。例如:
```
ps aux | grep process_name
pgrep process_name
```
2. 启动 `gdb` 工具,并将其附加到要重定向的进程上。例如:
```
gdb -p pid
```
其中 `pid` 是要重定向的进程的进程号。
3. 在 `gdb` 中执行以下命令来设置重定向:
```
call close(2)
call open("path/to/error.log", O_WRONLY|O_CREAT|O_APPEND, 0666)
```
上述命令会将标准错误输出关闭,并将其重定向到指定的文件中。如果文件不存在,则会自动创建。如果文件已经存在,则会在其末尾追加内容。
4. 退出 `gdb` 工具。可以使用 `quit` 命令退出。
现在,运行中的进程的标准错误输出就被重定向到指定的文件中了。请注意,这种方法只能重定向标准错误输出,不能重定向标准输出。而且,使用 `gdb` 工具重定向标准错误输出可能会对进程的运行产生影响,因此需要谨慎使用。
相关问题
这个对已经运行中的进程生不生效
对于已经运行中的进程,上述方法设置的全局默认错误输出并不会生效。因为该方法是在 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,该脚本也会继续在后台运行,并将错误输出写入指定的文件中。
python 后台运行并输出pid
您可以使用以下命令在后台运行 Python,并输出其进程 ID (PID):
```
nohup python your_script.py > output.log 2>&1 &
echo $! > pid.txt
```
这将在后台运行 `your_script.py`,并将标准输出和标准错误输出重定向到 `output.log` 文件中。同时,它会将进程 ID 写入 `pid.txt` 文件中。
解释一下命令中的各个部分:
- `nohup` 命令可以使程序在后台运行,即使你关闭了终端也不会停止运行。
- `&` 符号表示将命令放入后台运行。
- `>` 符号表示将标准输出重定向到指定文件中,这里指定为 `output.log`。
- `2>&1` 表示将标准错误输出也重定向到标准输出中,即都输出到 `output.log` 中。
- `echo $!` 输出最后一个放入后台的进程的 PID。
- `> pid.txt` 表示将输出的 PID 写入 `pid.txt` 文件中。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)