gpt4 book ai didi

linux - 是否可以将输入传递给正在运行的服务或守护进程?

转载 作者:IT王子 更新时间:2023-10-29 01:12:52 26 4
gpt4 key购买 nike

我想创建一个在 Linux 上作为守护程序运行的 Java 控制台应用程序,我已经创建了该应用程序和脚本以将该应用程序作为后台守护程序运行。应用程序运行并等待命令行输入。

我的问题:

是否可以将命令行输入传递给正在运行的守护进程?

最佳答案

在 Linux 上,所有正在运行的进程在 /proc 下都有一个特殊目录包含过程的信息和 Hook 。 /proc 的每个子目录都是一个正在运行的进程的 PID。因此,如果您知道特定进程的 PID,就可以获得有关它的信息。例如:

$ sleep 100 & ls /proc/$!
...
cmdline
...
cwd
environ
exe
fd
fdinfo
...
status
...

值得注意的是 fd 目录,其中包含所有 file descriptors与过程相关联。 012 存在于(几乎?)所有进程中,0 是默认标准输入。所以写入 /proc/$PID/fd/0 将写入该进程的标准输入。

一个更强大的替代方案是设置一个 named pipe连接到您的进程的标准输入;然后您可以写入该管道,进程将读取它而无需依赖 /proc 文件系统。

另见 Writing to stdin of background process在 ServerFault 上。

关于linux - 是否可以将输入传递给正在运行的服务或守护进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40732425/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com