@S.Lott, спасибо. Ваше предложение работало на меня с некоторой модификацией. Вот то, как я сделал это.
data = urllib.urlencode(params)
url = host+page
request = urllib2.Request(url, data, headers)
response = urllib2.urlopen(request)
cookies = CookieJar()
cookies.extract_cookies(response,request)
cookie_handler= urllib2.HTTPCookieProcessor( cookies )
redirect_handler= HTTPRedirectHandler()
opener = urllib2.build_opener(redirect_handler,cookie_handler)
response = opener.open(request)
Больше всего мне удалось использовать сам start-process.
(start-process "process-name"
(get-buffer-create "*rsync-buffer*")
"/path/to/rsync"
arg1
...
argn)
Это отправит весь вывод в один буфер.
Одним из решений может быть выполнение команды в фактическом буфере оболочки . Затем вы можете выбрать, какой из них запускать:
M-x shell
M-x eshell
M-x term
Если вам нравится эта идея, вы можете закодировать ее следующим образом:
(defun my-rsync-routine ()
"run some rsync processes"
(with-temp-buffer
(shell (current-buffer))
(process-send-string nil "rsync ...")
(process-send-string nil "rsync ...")
(process-send-string nil "rsync ...")))
Подробнее об использовании 'process-send-string
см. . Вы также можете проверить ошибки на выходе от процессов.