Мне нужно подключиться к VPN, а затем по ssh из дома на рабочий сервер, и я хочу запустить скрипт python в фоновом режиме, а затем выйти из сеанса ssh. Мой скрипт создает несколько графиков гистограмм, используя matplotlib, и пока я держу соединение открытым, все в порядке, но если я выхожу из системы, я получаю сообщение об ошибке в файле журнала, который я создал для скрипта.
File "/Home/eud/jmcohen/.local/lib/python2.5/site-packages/matplotlib/pyplot.py", line 2058, in loglog
ax = gca()
File "/Home/eud/jmcohen/.local/lib/python2.5/site-packages/matplotlib/pyplot.py", line 582, in gca
ax = gcf().gca(**kwargs)
File "/Home/eud/jmcohen/.local/lib/python2.5/site-packages/matplotlib/pyplot.py", line 276, in gcf
return figure()
File "/Home/eud/jmcohen/.local/lib/python2.5/site-packages/matplotlib/pyplot.py", line 254, in figure
**kwargs)
File "/Home/eud/jmcohen/.local/lib/python2.5/site-packages/matplotlib/backends/backend_tkagg.py", line 90, in new_figure_manager
window = Tk.Tk()
File "/Home/eud/jmcohen/.local/lib/python2.5/lib-tk/Tkinter.py", line 1647, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: couldn't connect to display "localhost:10.0"
Я предполагаю, что он не знает, где создавать нужные мне фигуры, так как я закрываю сеанс X11 ssh. Если я вошел в систему во время работы скрипта, я не вижу никаких всплывающих цифр (хотя это потому, что в моем скрипте нет команды show ()), и я подумал, что python использует tkinter для отображения цифр. Я создаю фигуры так:
loglog()
hist(list,x)
ylabel('y')
xlabel('x')
savefig('%s_hist.ps' %source.name)
close()
Скрипт требует некоторого начального ввода, поэтому я запускаю его в фоновом режиме:
python scriptToRun.py << start>& logfile.log&
Есть ли способ обойти это, или мне просто нужно остаться ssh'd в моей машине?
Спасибо.