Как я могу записать ошибки исключения на диск службы systemd? - PullRequest
0 голосов
/ 03 января 2019

Я написал ниже системный сервис, который запускает приложение фляги на gunicorn после обучения.Я могу видеть журналы доступа в /var/log/nginx/, но не журнал ошибок, происходящих в приложении python flask!Как я могу регистрировать ошибки на диске службы systemd?

$ cat /etc/systemd/system/gunicorn.service                                          [Unit]
Description=gunicorn daemon for /var/www/html/start_backend.py
After=network.target

[Service]
PermissionsStartOnly = true
User=ciasto
Group=www-data
RuntimeDirectory=gunicorn
WorkingDirectory=/var/www/html/
ExecStartPre = /bin/chown -R pi:www-data /var/www/html/
Environment="APP_SETTINGS=production"
Environment="DB_USER=username"
Environment="DB_PWD=password"
Environment="DB_HOST="ceres.local"
ExecStart=/usr/bin/env gunicorn --bind=unix:/tmp/gunicorn.sock --workers=4 start_backend:web_app
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

Чтобы получить журналы ошибок исключений, я добавил следующие две строки:

StandardOutput=file:/var/log/gunicorn/log1.log
StandardError=file:/var/log/gunicorn/log2.log

Я перезапустил службу gunicorn, чем посетил URLчтобы выдать ошибку исключения, проверьте путь, по которому я ожидаю, что журнал придет.Но я ничего не вижу

sudo systemctl status  gunicorn                                 ● gunicorn.service - gunicorn daemon for /var/www/html/start_backend.py
   Loaded: loaded (/etc/systemd/system/gunicorn.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-01-03 22:42:31 IST; 1min 9s ago
  Process: 3944 ExecStop=/bin/kill -s TERM $MAINPID (code=exited, status=0/SUCCESS)
  Process: 3947 ExecStartPre=/bin/chown -R ciasto:www-data /var/www/html/ (code=exited, status=0/SU Main PID: 3950 (gunicorn)
   CGroup: /system.slice/gunicorn.service
           ├─3950 /usr/bin/python /usr/bin/gunicorn --bind=unix:/tmp/gunicorn.sock --workers=4            ├─3965 /usr/bin/python /usr/bin/gunicorn --bind=unix:/tmp/gunicorn.sock --workers=4            ├─3966 /usr/bin/python /usr/bin/gunicorn --bind=unix:/tmp/gunicorn.sock --workers=4            ├─3967 /usr/bin/python /usr/bin/gunicorn --bind=unix:/tmp/gunicorn.sock --workers=4            └─3968 /usr/bin/python /usr/bin/gunicorn --bind=unix:/tmp/gunicorn.sock --workers=4 
Jan 03 22:43:34 ceres env[3950]:     db.connect()
Jan 03 22:43:34 ceres env[3950]:   File "/home/ciasto/.local/lib/python2.7/site-packages/peewee.py"Jan 03 22:43:34 ceres env[3950]:     self._state.set_connection(self._connect())
Jan 03 22:43:34 ceres env[3950]:   File "/home/ciasto/.local/lib/python2.7/site-packages/peewee.py"Jan 03 22:43:34 ceres env[3950]:     return mysql.connect(db=self.database, **self.connect_paraJan 03 22:43:34 ceres env[3950]:   File "/home/ciasto/.local/lib/python2.7/site-packages/MySQLdb/__Jan 03 22:43:34 ceres env[3950]:     return Connection(*args, **kwargs)
Jan 03 22:43:34 ceres env[3950]:   File "/home/ciasto/.local/lib/python2.7/site-packages/MySQLdb/coJan 03 22:43:34 ceres env[3950]:     super(Connection, self).__init__(*args, **kwargs2)
Jan 03 22:43:34 ceres env[3950]: TypeError: connect() argument 1 must be string, not None
ciasto@ceres:/etc/systemd/system $ cd /var/log/gunicorn                                            ciasto@ceres:/var/log/gunicorn $ ll
total 0
ciasto@ceres:/var/log/gunicorn $
...