Я нашел лучшее решение своей проблемы. Вместо того, чтобы переместить мои завершенные загрузки в определенный каталог и затем попятился, когда я сделан с ними, я сделал Сценарий KTorrent, который ловит законченный сигнал и создает символьную ссылку на файлы в каталоге, в котором я хочу видеть их. Когда я сделан с ними, я могу просто удалить символьную ссылку и никогда не иметь для перемещения фактических данных, которые намного более эффективны так или иначе.
Я сделал упакованный сценарий и источник доступными здесь:
http://schmunsler.no-ip.org/code/shared/file_linker/
но я отправлю содержание основного сценария здесь на всякий случай.
#!/usr/bin/env kross
# -*- coding: utf-8 -*-
import KTorrent
import KTScriptingPlugin
import Kross
import os
import socket
class FileLinker:
def __init__(self):
self.link_dir = KTScriptingPlugin.readConfigEntry("downloads","completedDir",os.path.expanduser("~/"))+"/"
if self.link_dir.startswith("file://"):
self.link_dir = self.link_dir[7:]
KTorrent.log("linkDir is "+self.link_dir)
KTorrent.connect("torrentAdded(const QString &)",self.torrentAdded)
tors = KTorrent.torrents()
# bind to signals for each torrent
for t in tors:
self.torrentAdded(t)
def torrentFinished(self,tor):
KTorrent.log("Symlinking "+tor.pathOnDisk()+" to "+self.link_dir+tor.name())
os.symlink(""+tor.pathOnDisk(),""+self.link_dir+tor.name())
def connectSignals(self,tor):
KTorrent.log("connectSignals " + tor.name())
tor.connect("finished(QObject* )",self.torrentFinished)
def torrentAdded(self,ih):
tor = KTorrent.torrent(ih)
self.connectSignals(tor)
# load settings
linker = FileLinker()
def unload():
global linker
del linker
Для каждого VM, который правильно настроен, qemu-kvm запускает слушатель специи или VNC. Порт и безопасность определяются в libvirt VM файл определения (virsh edit VMNAME
предоставит Вам доступ к тому), После того как VM работает, можно получить доступ к консоли VM непосредственно с помощью VNC или клиента СПЕЦИИ, никакая потребность перейти через обручи с X перенаправлениями