Найти - Пользователи
Полная версия: Работа скрипта, как службы.
Начало » Python для новичков » Работа скрипта, как службы.
1 2 3
xxnikolayxx
Скажите, как я могу свою программу запустить как службу(фоновую программу с возможностью корректировать информацию в интерактивном режиме), в *nix подобных системах?
Программа, она же служба, написана на python e.
То есть ее еще нужно будет запускать через среду разработки.
Подскажите, куда копать, умные люди.
s0rg
Не очень понятно условие ‘с возможностью корректировать информацию в интерактивном режиме’.
Вам скорее всего нужен демон, так?
xxnikolayxx
Да, именно он и нужен.
Lexander
http://www.python.org/dev/peps/pep-3143/
xxnikolayxx
а можно немного объяснениея, что происходит и как.
лучше с пимером.
Lexander
По ссылку есть и примеры и объяснения работы демона (раздел Rationale).
Что конкретно вам нужно?
Если внутренняя кухня библиотеки, то есть код ее автора:
http://code.activestate.com/recipes/278731/
Код немного устарел, но основы не изменились.
xxnikolayxx
Почитал про библиотеку, уж слишком это геморно для моей мини программки.
Мне нужно чтобы я заходя по ssh ее врубал и она оставалась в фоне при выходе.
И помимо этого я мог работать с файлами, которые обрабатывает программа.
Понимаю, это трудно, но может есть что-то что облегчит мою жизнь. помимо этой библиотеки?
while True:
import sys, os, time, shutil
from xml.dom import minidom
shutil.copy(os.path.join("c:/wingwork/wingwork0.4/","config.xml"), "c:/wingwork/wingwork0.4/ideal/")
doc = minidom.parse("c:/wingwork/wingwork0.4/ideal/config.xml")
aliases = doc.getElementsByTagName("aliases")[0]
alias = aliases.getElementsByTagName("alias")[1]
address_ = alias.getElementsByTagName("address")
for address in address_:
text1 = address.firstChild.data.strip()
shablon1 = "<address>%s</address>" % text1
doc = minidom.parse("c:/wingwork/wingwork0.4/ideal/config.xml")
aliases = doc.getElementsByTagName("squidguardacl")[0]
alias = aliases.getElementsByTagName("config")[1]
address_ = alias.getElementsByTagName("source")
for address in address_:
text2 = address.firstChild.data.strip()
shablon2 = "<source>%s</source>" % text2
config = open('c:/wingwork/wingwork0.4/config.xml', 'w')
with open('c:/wingwork/wingwork0.4/ideal/config.xml') as fd:
for line in fd:
if line.strip() == shablon1:
print >>config, "<address>%s</address>" % text1
elif line.strip() == shablon2:
print >>config, "<source>%s</source>" % text1
else:
print >>config, line.strip()
print "Выполняю"
config.close()
else:
time.sleep(15)
Извиняюсь за говно код, но пока по другому не умею.

Если кто подскажет, как сделать из этого “Говно кода” красавицу, буду только благодарен.
s0rg
xxnikolayxx
заходя по ssh
xxnikolayxx
c:/wingwork/wingwork0.4/
???
xxnikolayxx
s0rg
заходя по ssh
Есть удаленный сервер UNIX.
s0rg
c:/wingwork/wingwork0.4/
Я этот код там запускаю, а пишу и тестирую его на Виндовой машине, потому и путь такой.

Доступ к машине есть только ssh
захожу, запускаю.
Если код запущен, я не могу работать с файлами, которые обрабатывает код. - фаил уже используется и.тп и.т.д


При этом если я закрою сессию, выполнение прервется.
s0rg
понял
man nohup
man screen

если *BSD
man tmux
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB