启动程序不会启动应用程序

时间:2013-11-19 10:55:28

标签: python linux

我正在用Python编写一个简单的程序,它启动我当天需要的程序,并在我喝咖啡时按照我的意愿定位它们。以下是启动和定位Chrome的功能示例。

def chrome():
    Popen(['google-chrome'], stdout=os.open(os.devnull, os.O_RDWR), stderr=STDOUT)
    time.sleep(5)
    call(["/usr/bin/wmctrl", "-r", "Chrome", "-e", "0,1356,0,1200,1055"])

当我登录时,Chrome无法打开。但是,当我运行$ python boot.py时,它会打开Chrome,等待5秒钟,然后使用wmctrl将窗口与其他未打开的应用程序一起放置。

我通过设置python /home/rony/Documents/python/boot.py让程序在启动应用程序中启动,我知道它正在执行,因为Skype启动了。启动Skype应用程序与Chrome之间的唯一区别是我使用call('skype')而不是Popen()

是否有Popen()似乎无法在登录时打开我的应用程序?

1 个答案:

答案 0 :(得分:0)

我提到我使用call('skype')而不是Popen()。这是因为我可以拨打Skype,而实例不会像Chrome和Thunderbird那样绑定到终端。出于某种原因,只要执行了call()的实例,它就会阻止程序的其余部分执行。每当我从终端运行程序时都不会发生这种情况。

我认为问题是Popen()未运行,但事实证明call()不会让它出现。将call('skype')更改为Popen('skype')已解决了我的问题。