service файл python скрипта

У меня есть python скрипт, который нужно запускать при старте, но чего то не получается.
Написал вот такой service файл Z-Way.service
[Unit]
Description=Z-Way Home Automation
[Service]
Type=simple
WorkingDirectory=/root/Z-Way
ExecStart=/usr/bin/python Main.pyc
ExecStop=/bin/kill $MAINPID
ExecReload=/bin/kill $MAINPID; /usr/bin/python Main.pyc
PIDFile=/var/log/Run-Z-Way.pid
[Install]
WantedBy=multi-user.target

Если запустить командой:
systemctl start Z-Way
то он запускается и работает.

Но если его поставить в автозагрузку
systemctl enable Z-Way
и перезагрузиться, то он начинает запускаться, и сразу же его выключают:
journalctl -u Z-Way
-- Reboot --
Jun 27 01:19:37 localhost python[146]: 2013-06-27 01:19:37,909 Progrm.INFO     Start. pid=146
Jun 27 01:19:37 localhost python[146]: 2013-06-27 01:19:37,909 Progrm.INFO     Licence number 2:52 Machine restricted
Jun 27 01:19:38 localhost python[146]: 2013-06-27 01:19:38,979 Serial.INFO     Open serial port /dev/ttyUSB0
Jun 27 01:19:39 localhost python[146]: 2013-06-27 01:19:39,094 CmdCls.ERROR    Can not import module Security: No module named Crypto.Cipher
Jun 27 01:19:39 localhost python[146]: 2013-06-27 01:19:39,123 CmdCls.INFO     Device 255, instance 0 supports Command Class Basic
Jun 27 01:19:39 localhost python[146]: 2013-06-27 01:19:39,125 CmdCls.INFO     Device 255, instance 0 supports Command Class SwitchAll
Jun 27 01:19:39 localhost python[146]: 2013-06-27 01:19:39,157 Except.CRITICAL Traceback (most recent call last):
Jun 27 01:19:39 localhost python[146]: 2013-06-27 01:19:39,158 Except.CRITICAL   File "DeviceClasses.py", line 73, in LoadDeviceClasses
Jun 27 01:19:39 localhost python[146]: 2013-06-27 01:19:39,158 Except.CRITICAL   File "DeviceClasses.py", line 48, in GetCommandClassIdByName
Jun 27 01:19:39 localhost python[146]: 2013-06-27 01:19:39,159 Except.CRITICAL Exception: Command Class Security not registered
Jun 27 01:19:39 localhost python[146]: 2013-06-27 01:19:39,159 Except.CRITICAL Skipping Command Class Security
Jun 27 01:19:39 localhost python[146]: 2013-06-27 01:19:39,169 Serial.INFO     Z-Wave API loop started
Jun 27 01:19:39 localhost python[146]: 2013-06-27 01:19:39,170 Z-Wave.DEBUG    Adding job: Get serial API capabilities
Jun 27 01:19:39 localhost python[146]: 2013-06-27 01:19:39,179 WebSrv.INFO     Starting WebServer on :8083
Jun 27 01:19:39 localhost python[146]: 2013-06-27 01:19:39,181 Z-Wave.DEBUG    SENDING (cb 0x00): ( 01 03 00 07 FB )
Jun 27 01:19:39 localhost python[146]: 2013-06-27 01:19:39,207  Rules.INFO     Loading rules configuration XML    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Вот здесь скрипт еще работает
Jun 27 01:19:39 localhost python[146]: 2013-06-27 01:19:39,208  Rules.DEBUG    Removing all timers     <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  А здесь он уже начинает сохранять свои данные, чтобы закрыться, ему послали команды выключиться
Jun 27 01:19:39 localhost python[146]: 2013-06-27 01:19:39,210  Rules.DEBUG    Removing all schedules
Jun 27 01:19:39 localhost python[146]: 2013-06-27 01:19:39,282 Z-Wave.INFO     Exiting Z-Wave API loop thread
Jun 27 01:19:40 localhost python[146]: 2013-06-27 01:19:40,166 Z-Wave.INFO     Exiting Z-Wave API Send into sleep loop thread
Jun 27 01:19:40 localhost python[146]: 2013-06-27 01:19:40,214 CmdCls.ERROR    SaveData will not save DeviceData file since it was not loaded yet
Jun 27 01:19:40 localhost python[146]: 2013-06-27 01:19:40,215 Progrm.INFO     Crashed threads: Z-Wave API loop
Jun 27 01:19:40 localhost python[146]: 2013-06-27 01:19:40,215 WebSrv.INFO     Exiting Web Server loop thread
Jun 27 01:19:41 localhost python[146]: 2013-06-27 01:19:41,001  Rules.INFO     Exiting Timer loop thread
Jun 27 01:19:42 localhost python[146]: 2013-06-27 01:19:42,001  Rules.INFO     Exiting Scheduler loop thread
Jun 27 01:19:42 localhost python[146]: 2013-06-27 01:19:42,002 Progrm.INFO     Exiting main thread. pid=146
Jun 27 01:19:42 localhost systemd[1]: Z-Way.service: control process exited, code=exited status=1
Jun 27 01:19:42 localhost systemd[1]: Unit Z-Way.service entered failed state.

[root@localhost ~]# systemctl status Z-Way
Z-Way.service - Z-Way Home Automation
   Loaded: loaded (/etc/systemd/system/Z-Way.service; enabled)
   Active: failed (Result: exit-code) since Thu 2013-06-27 01:19:42 MSK; 9min ago
  Process: 225 ExecStop=/bin/kill $MAINPID (code=exited, status=1/FAILURE)
  Process: 146 ExecStart=/usr/bin/python Main.pyc (code=exited, status=0/SUCCESS)
Jun 27 01:19:39 localhost python[146]: 2013-06-27 01:19:39,282 Z-Wave.INFO     Exiting Z-Wave API loop thread
Jun 27 01:19:40 localhost python[146]: 2013-06-27 01:19:40,166 Z-Wave.INFO     Exiting Z-Wave API Send into sleep loop thread
Jun 27 01:19:40 localhost python[146]: 2013-06-27 01:19:40,214 CmdCls.ERROR    SaveData will not save DeviceData file since it was not...ata loss
Jun 27 01:19:40 localhost python[146]: 2013-06-27 01:19:40,215 Progrm.INFO     Crashed threads: Z-Wave API loop
Jun 27 01:19:40 localhost python[146]: 2013-06-27 01:19:40,215 WebSrv.INFO     Exiting Web Server loop thread
Jun 27 01:19:41 localhost python[146]: 2013-06-27 01:19:41,001  Rules.INFO     Exiting Timer loop thread
Jun 27 01:19:42 localhost python[146]: 2013-06-27 01:19:42,001  Rules.INFO     Exiting Scheduler loop thread
Jun 27 01:19:42 localhost python[146]: 2013-06-27 01:19:42,002 Progrm.INFO     Exiting main thread. pid=146
Jun 27 01:19:42 localhost systemd[1]: Z-Way.service: control process exited, code=exited status=1
Jun 27 01:19:42 localhost systemd[1]: Unit Z-Way.service entered failed state.
Почему если вручную запускаю, то работает, а автозагрузка не работает ?
Ваш скрипт запускается в любом случае.
При уже загруженной системе он работает нормально, а при старте во время загрузки ему чего-то не хватает и он падает.
дык он как бы говорит, что ему не так:
2013-06-27 01:19:39,094 CmdCls.ERROR    Can not import module Security: No module named Crypto.Cipher
где хранится этот модуль, что он к нему путь не может найти? Может быть такое, что путь к нему дописывается при инициализации шелла в PYTHONPATH?
PGP 0x31361F01
arcanisrepo
Как бы запустит этот скрипт после полной загрузки системы? Что то в After нужно прописать ?

[Unit]
Description=Z-Way Home Automation
After=??

Исправил ошибку что не подгружался класс, но это на ход дела не влияло.

-- Reboot --
Jun 27 10:14:16 localhost python[145]: 2013-06-27 10:14:16,200 Progrm.INFO     Start. pid=145
Jun 27 10:14:16 localhost python[145]: 2013-06-27 10:14:16,201 Progrm.INFO     Licence number 2:52 Machine restricted
Jun 27 10:14:17 localhost python[145]: 2013-06-27 10:14:17,283 Serial.INFO     Open serial port /dev/ttyUSB0
Jun 27 10:14:17 localhost python[145]: 2013-06-27 10:14:17,486 CmdCls.INFO     Device 255, instance 0 supports Command Class Basic
Jun 27 10:14:17 localhost python[145]: 2013-06-27 10:14:17,488 CmdCls.INFO     Device 255, instance 0 supports Command Class SwitchAll
Jun 27 10:14:17 localhost python[145]: 2013-06-27 10:14:17,530 Serial.INFO     Z-Wave API loop started
Jun 27 10:14:17 localhost python[145]: 2013-06-27 10:14:17,531 Z-Wave.DEBUG    Adding job: Get serial API capabilities
Jun 27 10:14:17 localhost python[145]: 2013-06-27 10:14:17,540 WebSrv.INFO     Starting WebServer on :8083
Jun 27 10:14:17 localhost python[145]: 2013-06-27 10:14:17,543 Z-Wave.DEBUG    RECEIVED: ( 01 12 00 04 00 08 0C 60 0D 03 03 31 05 01 44 00 00 0C 0F F2 )
Jun 27 10:14:17 localhost python[145]: 2013-06-27 10:14:17,544 Z-Wave.ERROR    Got frame from device 8 to controller, but device is not registered - do re-inclusion: (
Jun 27 10:14:17 localhost python[145]: 2013-06-27 10:14:17,565  Rules.INFO     Loading rules configuration XML
Jun 27 10:14:17 localhost python[145]: 2013-06-27 10:14:17,566  Rules.DEBUG    Removing all timers
Jun 27 10:14:17 localhost python[145]: 2013-06-27 10:14:17,667  Rules.DEBUG    Removing all schedules
Jun 27 10:14:17 localhost python[145]: 2013-06-27 10:14:17,668 Z-Wave.INFO     Exiting Z-Wave API loop thread
Jun 27 10:14:17 localhost python[145]: 2013-06-27 10:14:17,672 CmdCls.ERROR    SaveData will not save DeviceData file since it was not loaded yet. This is to prevent d
Jun 27 10:14:17 localhost python[145]: 2013-06-27 10:14:17,673 Progrm.INFO     Crashed threads: Z-Wave API loop
Jun 27 10:14:17 localhost python[145]: 2013-06-27 10:14:17,673 WebSrv.INFO     Exiting Web Server loop thread
Jun 27 10:14:18 localhost python[145]: 2013-06-27 10:14:18,527 Z-Wave.INFO     Exiting Z-Wave API Send into sleep loop thread
Jun 27 10:14:19 localhost python[145]: 2013-06-27 10:14:19,001  Rules.INFO     Exiting Timer loop thread
Jun 27 10:14:20 localhost python[145]: 2013-06-27 10:14:20,001  Rules.INFO     Exiting Scheduler loop thread
Jun 27 10:14:20 localhost python[145]: 2013-06-27 10:14:20,002 Progrm.INFO     Exiting main thread. pid=145
Jun 27 10:14:20 localhost python[145]: This is external script. I notify you that new device with id 8 is found
Jun 27 10:14:20 localhost systemd[1]: Z-Way.service: control process exited, code=exited status=1
Jun 27 10:14:20 localhost systemd[1]: Unit Z-Way.service entered failed state.

Скрупту по прежнему после старта система посылает kill
чтобы однозначно сказать, после чего его запускать, нужно знать, что он делает) предположу, что можно попробовать после удава (systemd-udevd.service если не ошибаюсь) - т.к. ниже там ругается немного на девайс
PGP 0x31361F01
arcanisrepo
After=systemd-udevd.service не помогло, скрипт по прежнему перестает работать, только начав.

Что делает скрипт: устанавливает соединение с устройством и начинает с ним общаться по UART, устройство передает данные, скрипт обрабатывает их, в начале видно, что соединение устанавливается и устройство даже успевает передать некоторые данные, далее запускается веб сервер, чтобы можно было управлять устройством.

Этот скрипт использует python библиотеки:
python2-crypto 2.6-3
python2-pyserial

Главным условием работы скрипта является, то что модуль pl2303 подгружен и устройство /dev/ttyUSB0 существует.

Есть ли директива ?
After= загружать в последнюю очредь

Может дело вовсе не в After, а в чем то другом?
 
Зарегистрироваться или войдите чтобы оставить сообщение.