Что не так с моим системным файлом systemd?

Вот мой файл юнита:

[Unit] Description=Backend Service After=mariadb.service Requires=mariadb.service [Service] Type=simple ExecStart=/var/www/html/pythonscripts/Backend.py [Install] Alias=BEd WantedBy=basic.target 

Вот что я написал ранее, когда работал (инструкции по настройке службы):

 BEd.service must be moved to /etc/systemd/system systemctl daemon-reload systemctl enable BEd systemctl start BEd 

Ниже приведена папка / etc / systemd / system:

 basic.target.wants dbus-org.freedesktop.NetworkManager.service default.target.wants sockets.target.wants BEd dbus-org.freedesktop.nm-dispatcher.service getty.target.wants sysinit.target.wants BEd.service default.target multi-user.target.wants system-update.target.wants 

Вот сообщение об ошибке после перезагрузки:

 [root@BEKappa ~]# systemctl status -l BHd BEd.service - Backend Service Loaded: loaded (/etc/systemd/system/BEd.service; enabled) Active: failed (Result: exit-code) since Sat 2016-01-16 18:39:27 EST; 34s ago Process: 3852 ExecStart=/var/www/html/pythonscripts/BEd.py (code=exited, status=1/FAILURE) Main PID: 3852 (code=exited, status=1/FAILURE) CGroup: /system.slice/BEd.service Jan 16 18:39:27 BEKappa BEd.py[3852]: Traceback (most recent call last): Jan 16 18:39:27 BEKappa BEd.py[3852]: File "/var/www/html/pythonscripts/BEd.py", line 147, in <module> Jan 16 18:39:27 BEKappa BEd.py[3852]: cur.execute(network_adapters_sql) Jan 16 18:39:27 BEKappa BEd.py[3852]: File "/usr/lib64/python2.7/site-packages/MySQLdb/cursors.py", line 174, in execute Jan 16 18:39:27 BEKappa BEd.py[3852]: self.errorhandler(self, exc, value) Jan 16 18:39:27 BEKappa BEd.py[3852]: File "/usr/lib64/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler Jan 16 18:39:27 BEKappa BEd.py[3852]: raise errorclass, errorvalue Jan 16 18:39:27 BEKappa BEd.py[3852]: _mysql_exceptions.ProgrammingError: (1064, 'You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near \'\'IP\', \'ethernet\', \'connecting\', \'(getting\', \'enp7s0\', \'yes\', \'1000\', \'"dhcp"\', )\' at line 1') Jan 16 18:39:27 BEKappa systemd[1]: BEd.service: main process exited, code=exited, status=1/FAILURE Jan 16 18:39:27 BEKappa systemd[1]: Unit BEd.service entered failed state. 

Я на 100% уверен, что это не служебный код, так как он начинается просто после перезагрузки вручную (т.е. systemctl start BEd).

Основываясь на ошибке, я на 90% уверен, что mariaDB не закончил загрузку при запуске BEd, это не сработало в первой инструкции SQL программы. Тем не менее, этот файл модуля работал до этого, и он в настоящее время работает на другом сервере. Поэтому я озадачен.

Вероятно, ваш вопрос не привлек ответа из-за общего вопроса «Что случилось с моим файлом?». Попробуйте задать конкретный вопрос в следующий раз.

В этом случае вы считаете, что проблема может заключаться в том, что скрипт перед MySQL был готов. Вы можете подтвердить, так ли это. Вручную отключите MySQL и запустите скрипт. Он должен дать тот же результат.

Вы также можете добавить проверку ошибок в скрипт, чтобы подтвердить, что он может подключиться к MySQL, прежде чем продолжить.

Если проблема в том, что MySQL еще не начался, то это интересный, конкретный вопрос, который нужно задать, потому что ваш конфиг указывает, что вы попросили сначала запустить MySQL.

Должен быть способ решить / systemd / issue с systemd , но вы также можете проверить, действительно ли это проблема, обновив свой скрипт, чтобы спать на минутку (или пять), прежде чем он попытается что-либо сделать. Это должно дать MySQL много времени, чтобы закончить онлайн, прежде чем он начнется.

В качестве побочного примечания я заметил, что вы сохраняете свой скрипт Python под сетевым корнем. Если сценарий не всегда предназначен для запуска Интернета, безопасность может быть улучшена путем перемещения его за пределы корня веб-сайта.