web-dev-qa-db-fra.com

Systemd Rqworker Service

SystemD Service, je veux créer mais ça échoue. Ceci est mon service que j'ai créé.

[Unit]
Description=rqworker daemon
After=network.target

[Service]
Type=simple
WorkingDirectory=/home/ubuntu/mamster
User=ubuntu
Group=ubuntu
#EnvironmentFile=/etc/sysconfig/master.env
#Environment="PYTHONPATH=/home/ubuntu/venv"
ExecStart=/home/ubuntu/venv /venv/bin/rqworker master
StandardOutput=/home/ubuntu/logs/icengine/std_out.log
StandardError=/home/ubuntu/logs/icengine/std_err/log
#SyslogIdentifier=icengin
KillMode=process
Restart=always
TimeoutSec=infinity
RestartPreventExitStatus=255
Type=notify

[Install]
WantedBy=multi-user.target
Alias=master.service

Initialement, ce service est Actiating(Start) mais non Active

Mais après avoir apporté des changements et maintenant cela montrant une erreur:

Après avoir exécuté Sudo systemctl start rq

(venv) ubuntu@ubuntucalc:~$ Sudo systemctl status rq
● rq.service - rqworker daemon
   Loaded: loaded (/etc/systemd/system/rq.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2019-01-15 06:53:20 UTC; 4s ago
  Process: 18537 ExecStart=/home/ubuntu/venv /venv/bin/rqworker master (code=exited, status=200/CHDIR)
 Main PID: 18537 (code=exited, status=200/CHDIR)

Jan 15 06:53:20 ubuntucalc systemd[1]: rq.service: Main process exited, code=exited, status=200/CHDIR
Jan 15 06:53:20 ubuntucalc systemd[1]: rq.service: Failed with result 'exit-code'.
Jan 15 06:53:20 ubuntucalc systemd[1]: Failed to start rqworker daemon.
Jan 15 06:53:20 ubuntucalc systemd[1]: rq.service: Service hold-off time over, scheduling restart.
Jan 15 06:53:20 ubuntucalc systemd[1]: rq.service: Scheduled restart job, restart counter is at 5.
Jan 15 06:53:20 ubuntucalc systemd[1]: Stopped rqworker daemon.
Jan 15 06:53:20 ubuntucalc systemd[1]: rq.service: Start request repeated too quickly.
Jan 15 06:53:20 ubuntucalc systemd[1]: rq.service: Failed with result 'exit-code'.
Jan 15 06:53:20 ubuntucalc systemd[1]: Failed to start rqworker daemon.

C'est la sortie que j'ai obtenue. Merci

1
Rajat jain

Il existe des problèmes dans ce fichier d'unité:

  • Le fichier contient deux instances de Type=, un avec simple et un avec notify. Il ne doit contenir qu'une seule ligne et qui doit être du type approprié qui à son tour dépend de la manière dont l'exécutable /home/ubuntu/venv se comporte. Pour les démons, souvent forking est utilisé.
  • Le nom de fichier donné pour StandardError devrait probablement être /home/ubuntu/logs/icengine/std_err.log et pas /home/ubuntu/logs/icengine/std_err/log. Assurez-vous que l'utilisateur ubuntu est capable d'écrire à cet emplacement et les répertoires existent. Je pense que systemd _ _ ne créera pas le chemin s'il n'existe pas (bien que cela créera le fichier ).
  • La syntaxe de StandardOutput= et StandardError= est faux. Selon le Docs Le sysntax est StandardOutput=file:/home/ubuntu/logs/icengine/std_out.log. Idem pour StandardError.
1
PerlDuck