aivs |
|
Темы:
62
Сообщения:
261
Участник с: 31 октября 2006
|
У меня есть 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. |
Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
Ваш скрипт запускается в любом случае. При уже загруженной системе он работает нормально, а при старте во время загрузки ему чего-то не хватает и он падает. |
arcanis |
|
Темы:
31
Сообщения:
1496
Участник с: 09 сентября 2012
|
дык он как бы говорит, что ему не так:2013-06-27 01:19:39,094 CmdCls.ERROR Can not import module Security: No module named Crypto.Cipher |
aivs |
|
Темы:
62
Сообщения:
261
Участник с: 31 октября 2006
|
Как бы запустит этот скрипт после полной загрузки системы? Что то в 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 |
arcanis |
|
Темы:
31
Сообщения:
1496
Участник с: 09 сентября 2012
|
чтобы однозначно сказать, после чего его запускать, нужно знать, что он делает) предположу, что можно попробовать после удава (systemd-udevd.service если не ошибаюсь) - т.к. ниже там ругается немного на девайс |
aivs |
|
Темы:
62
Сообщения:
261
Участник с: 31 октября 2006
|
After=systemd-udevd.service не помогло, скрипт по прежнему перестает работать, только начав. Что делает скрипт: устанавливает соединение с устройством и начинает с ним общаться по UART, устройство передает данные, скрипт обрабатывает их, в начале видно, что соединение устанавливается и устройство даже успевает передать некоторые данные, далее запускается веб сервер, чтобы можно было управлять устройством. Этот скрипт использует python библиотеки: python2-crypto 2.6-3 python2-pyserial Главным условием работы скрипта является, то что модуль pl2303 подгружен и устройство /dev/ttyUSB0 существует. Есть ли директива ? After= загружать в последнюю очредь Может дело вовсе не в After, а в чем то другом? |