加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-14 00:43:33 所属栏目:Linux 来源:网络整理
导读:我想创建一个在 Linux上作为守护程序运行的Java控制台应用程序,我创建了应用程序和脚本以将应用程序作为后台守护程序运行.应用程序运行并等待命令行输入. 我的问题: 是否可以将命令行输入传递给正在运行的守护程序? 解决方法 所有正在运行的进程在 /proc
我想创建一个在 Linux上作为守护程序运行的Java控制台应用程序,我创建了应用程序和脚本以将应用程序作为后台守护程序运行.应用程序运行并等待命令行输入.

我的问题:

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

解决方法

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

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

值得注意的是fd目录,其中包含与进程关联的所有file descriptors. 0(1和2)存在(几乎?)所有进程,0是默认的stdin.因此写入/ proc / $PID / fd / 0将写入该进程的stdin.

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

另请参阅ServerFault上的Writing to stdin of background process.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读