bash - 将进程的输出写入文件名中包含进程 ID 的文件

标签 bash background-process pid io-redirection

这就是我要实现的目标:

  • 在后台运行命令/进程,并将其输出重定向到一个以后台进程的进程 ID 命名的临时文件。
  • 例子:
    • top &//这个后台进程的进程Id是1123
    • top 的输出应存储在文件 1123.temp 中

这可能吗?因为要真正在后台运行它,我们不需要在将其标记为后台进程之前进行重定向吗?还是有一些技术可以解决这个问题?

最佳答案

您可以重定向到一个临时文件,然后 mv 该文件到所需的名称,例如

process > /tmp/process.log &
mv /tmp/process.log /tmp/$!.log

$! 是先前后台进程的 pid。请注意,mv 只是重命名该文件。它不会中断写入。

关于bash - 将进程的输出写入文件名中包含进程 ID 的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13492317/

相关文章:

用于计算汇总 IP 地址范围的 Bash 脚本

string - 如何在 Bash 或 Unix shell 中检查字符串中的第一个字符?

bash - TAB 补全和 mc 问题

bash - 如何在单引号内扩展变量?

windows-8 - 如果在 CPU 和网络限制内,WinRT 后台任务能否长期存在?

perl - 如何在 Perl 中快速找到用户的终端 PID?

javascript - NodeJS 后台作业从不执行,永远循环

iPhone:应用程序在后台播放音乐

java - 如何向 JNI_CreateJavavm 调用创建的 JVM 发送信号?

c - 如何通过PID唤醒进程? (在C中)