为什么这个python程序不会终止?

时间:2013-11-30 12:57:52

标签: python fuse

我是Python和Fuse的新手。我正在通过我在系统上运行的其他人的Fuse代码工作。

以下是启动程序的主要方法:

if __name__ == '__main__':
    os.system('clear')
    print "\n[*] Filesystem has been started.\n==============================================="
    main(sys.argv[1], sys.argv[2])

这称之为

def main(a, b):
    print "\n[*] Calling main method"
    FUSE(FuseHandler(a), b, foreground=True)

我(现在知道)从Fuse调用init方法... What is happening when this code calls FUSE like this?

class FuseHandler(Operations):
    '''
    Class must implement reading a file, writing a file, and listing a directory.
    POSIX calls will be redirected as such.
    '''
    def __init__(self, root):
        self.root = realpath(root)      
        # Set up a working directory in case this is the first run
        self.printStatus()
        print '[-] End of Fuse init method: system initialized'

当我运行程序时,它一直运行到init方法的末尾,然后打印

  

“Fuse init方法结束:系统初始化。”

然后光标闪烁,就像Python期待输入一样。该计划不会终止。它在做什么?调用Fuse init后代码“go”在哪里?这是一个正在运行的Fuse控制台的样子吗?

enter image description here

1 个答案:

答案 0 :(得分:2)

通过FUSE(...)调用,您可以控制FusePy库,该库必须保持程序运行(下面可能有一个事件调度循环);否则,如果它立即终止,你的程序怎么能继续响应Fuse文件操作请求(其实现在你的处理程序类中)?