Python-应用程序.desktop-快捷方式导致故障
Python-Application .desktop-shortcut causing malfunction
我想为我的 Python 应用程序创建一个桌面启动器。该应用程序使用公钥身份验证在 pexpect
上执行各种 ssh 操作。然而,问题是,当我使用 .desktop 启动器启动我的应用程序时,它无法正常工作。 ssh 连接要求输入密码并且不使用公钥。但它通过命令行执行工作正常。
.desktop 文件如下所示:
[Desktop Entry]
Version=1.0
Name=SSH-Manager
Comment=XYZ
Exec=python /home/userx/SSH-Manager/startup.py
Icon=/home/userx/SSH-Manager/resources/icon.png
Path=/home/userx/repos/SSH-Manager
Terminal=true
Type=Application
Categories=Utility;Application;
StartupNotify=false
桌面环境为KDE,桌面用户与命令行用户相同
谁能解释一下为什么我的启动器会出现这种奇怪的行为?
编辑:示例函数
def run(self):
self.a_signal.emit("Retrieving Data")
try:
session = pxssh()
session.force_password = False
hostname = self.client
username = "root"
session.login(hostname, username)
session.sendline("ls -a")
session.prompt()
session.logout()
except ExceptionPxssh as e:
print ("pxssh failed: ")
self.error_signal.emit("failed", str(e))
print e
return
self.process_output()
self.finish_signal.emit("done")
正如 Mirosław Zalewski 在评论中怀疑的那样,问题是 ssh-agent
不是 运行 用于桌面环境,因为 ssh-add
最初用于 /etc/sources
.因此,在 X 用户 ~./profile
中执行 ssh-add
即可解决问题。
我想为我的 Python 应用程序创建一个桌面启动器。该应用程序使用公钥身份验证在 pexpect
上执行各种 ssh 操作。然而,问题是,当我使用 .desktop 启动器启动我的应用程序时,它无法正常工作。 ssh 连接要求输入密码并且不使用公钥。但它通过命令行执行工作正常。
.desktop 文件如下所示:
[Desktop Entry]
Version=1.0
Name=SSH-Manager
Comment=XYZ
Exec=python /home/userx/SSH-Manager/startup.py
Icon=/home/userx/SSH-Manager/resources/icon.png
Path=/home/userx/repos/SSH-Manager
Terminal=true
Type=Application
Categories=Utility;Application;
StartupNotify=false
桌面环境为KDE,桌面用户与命令行用户相同
谁能解释一下为什么我的启动器会出现这种奇怪的行为?
编辑:示例函数
def run(self):
self.a_signal.emit("Retrieving Data")
try:
session = pxssh()
session.force_password = False
hostname = self.client
username = "root"
session.login(hostname, username)
session.sendline("ls -a")
session.prompt()
session.logout()
except ExceptionPxssh as e:
print ("pxssh failed: ")
self.error_signal.emit("failed", str(e))
print e
return
self.process_output()
self.finish_signal.emit("done")
正如 Mirosław Zalewski 在评论中怀疑的那样,问题是 ssh-agent
不是 运行 用于桌面环境,因为 ssh-add
最初用于 /etc/sources
.因此,在 X 用户 ~./profile
中执行 ssh-add
即可解决问题。