在FUSE中以编程方式发出命令?

2024-05-16 22:36:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用FUSE和python实现类似于dropbox的东西(特别是fusepy)。我想到了两种不同的方法。如果可以的话,我更喜欢方法1。你知道吗

  1. 我想要一个客户机/服务器模型,其中客户机通过HTTP向服务器发送命令行请求(例如,客户机发送字符串'ls'或'cd'。。。等等)。实现FUSE的服务器应在收到命令行请求时处理该请求,并将结果发送回客户端。 为了实现这一点,我需要能够以编程方式向服务器上的FUSE实现发出诸如“ls”之类的命令。有办法吗?是否可以绑定服务器的FUSE实现,将某些文件/流/输入视为终端/命令行?

  2. 我也在考虑在客户机上实现FUSE,并且只通过HTTP发送系统调用请求(例如,客户机通过HTTP发送字符串“chmod”或“read”,请求中也包含相应的参数)。与第一种方法中在命令行请求中批处理系统调用相比,这种方法似乎效率较低,因为每次系统调用都会发出一个请求。然而,据我所见,在服务器的FUSE实现中以编程方式调用系统调用似乎并不难。如果第一种方法无法实现,那么如何在FUSE实现中以编程方式调用系统调用呢?

最后,这是一种完全不同的方式吗?这只是我解决这个问题的两个想法,但也许还有其他一些东西可以更好地实现客户机/服务器FS。(dropbox是如何做到这一点的?)你知道吗


Tags: 方法字符串命令行模型服务器http客户机系统
1条回答
网友
1楼 · 发布于 2024-05-16 22:36:40

事实证明,我真正应该做的是调用subprocess.check_output(...)。Fuse处理系统调用,而不是终端命令。从命令行到系统调用的转换应该通过操作系统的内核来完成。在本例中,我向操作系统请求输出,并将该字符串返回给客户机。你知道吗

相关问题 更多 >