У меня есть VPN, а затем ssh из дома на мой рабочий сервер и хочу запустить python script в фоновом режиме, а затем выйти из сеанса ssh. Мой script делает несколько графиков гистограммы, используя matplotlib, и пока я держу соединение открытым, все нормально, но если я выхожу из системы, я продолжаю получать сообщение об ошибке в файле журнала, который я создал для script.
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"
Я предполагаю, что он не знает, где создавать цифры, которые я хочу, так как я закрываю сессию ssh s X11. Если я вошел в систему, пока работает script, я не вижу всплывающих цифр (хотя это потому, что у меня нет команды show() в моем script), и я думал, что python использует tkinter для отображения цифр. Способ создания фигур,
loglog()
hist(list,x)
ylabel('y')
xlabel('x')
savefig('%s_hist.ps' %source.name)
close()
script требуется некоторый начальный ввод, поэтому способ, которым я выполняю его в фоновом режиме,
python scriptToRun.py << start>& logfile.log&
Есть ли способ обойти это, или мне просто нужно остаться ssh'd в моей машине?
Спасибо.