【问题标题】:Programmatically issue commands in FUSE?在 FUSE 中以编程方式发出命令?
【发布时间】:2013-12-08 07:04:13
【问题描述】:

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

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

  2. 我正在考虑在客户端上实现 FUSE,并仅通过 HTTP 发送系统调用请求(例如,客户端通过 HTTP 发送字符串 'chmod' 或 'read',并在也要求)。这种方法似乎效率较低,因为每个系统调用都会发出一个请求,而不是在第一种方法中在命令行请求中批处理系统调用。但是,据我所见,在服务器的 FUSE 实现中以编程方式调用系统调用似乎并不难。 如果第一种方法无法完成,我该如何在 FUSE 实现中以编程方式调用系统调用?

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

【问题讨论】:

    标签: python http fuse


    【解决方案1】:

    事实证明,我真正应该做的是打电话给subprocess.check_output(...)。 Fuse 处理系统调用,而不是终端命令。从命令行转换为系统调用应该通过操作系统的内核来完成。在这种情况下,我向操作系统询问输出,并将该字符串返回给客户端。

    【讨论】:

      猜你喜欢
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-16
      • 2020-04-10
      • 2014-10-27
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多