Не удалось на этапе CHDIR порождать /opt/Informer5/informer5.sh: нет такого файла или каталога - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть приложение под названием «Информер».Я пытаюсь зарегистрировать его как сервис, и я не уверен, где я ошибся.

Вот informer.service:

[Unit]
Description=Informer Docker
After=docker.service
Requires=docker.service

[Service]
Type=oneshot
User=root
WorkingDirectory=/opt/Informer5  <===Modify for the appropriate directory
ExecStart=/opt/Informer5/informer5.sh start <===Modify for the appropriate    directory
ExecStop=/opt/Informer5/informer5.sh stop <===Modify for the appropriate directory
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Этот файл находится в моем / etc /системная / системная папка.Я включил службу через

sudo systemctl enable informer

при выполнении

sudo systemctl start informer

Ответ, который я получаю

Job for informer.service failed because the control process exited with error code. See "systemctl status informer.service" and "journalctl -xe" for details.

Итак, работая, systemctl status informer.service, я вижу следующее:

$sudo systemctl status informer.service
● informer.service - Informer Docker
   Loaded: loaded (/etc/systemd/system/informer.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2018-09-18 08:49:07 EDT; 4min 2s ago
  Process: 5780 ExecStart=/opt/Informer5/informer5.sh start <===Modify for the appropriate directory (code=exited, status=200/CHDIR)
 Main PID: 5780 (code=exited, status=200/CHDIR)

Sep 18 08:49:07 informer5 systemd[1]: Starting Informer Docker...
Sep 18 08:49:07 informer5 systemd[1]: informer.service: Main process exited, code=exited, status=200/CHDIR
Sep 18 08:49:07 informer5 systemd[1]: Failed to start Informer Docker.
Sep 18 08:49:07 informer5 systemd[1]: informer.service: Unit entered failed state.
Sep 18 08:49:07 informer5 systemd[1]: informer.service: Failed with result 'exit-code'.

Запуск $ sudo journalctl -xe, я получаю:

    $ sudo journalctl -xe
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit informer.service has failed.
    --
    -- The result is failed.
    Sep 18 08:06:36 informer5 systemd[1]: informer.service: Unit entered failed state.
    Sep 18 08:06:36 informer5 systemd[1]: informer.service: Failed with result 'exit-code'.
    Sep 18 08:06:36 informer5 sudo[5690]: pam_unix(sudo:session): session closed for user root
    Sep 18 08:12:40 informer5 sudo[5712]: n_connor : TTY=pts/0 ; PWD=/opt/Informer5 ; USER=root ; COMMAND=/bin/cat /etc/systemd/system/informer.service
    Sep 18 08:12:40 informer5 sudo[5712]: pam_unix(sudo:session): session opened for user root by n_connor(uid=0)
    Sep 18 08:12:40 informer5 sudo[5712]: pam_unix(sudo:session): session closed for user root
    Sep 18 08:15:01 informer5 CRON[5716]: pam_unix(cron:session): session opened for user root by (uid=0)
    Sep 18 08:15:01 informer5 CRON[5717]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
    Sep 18 08:15:01 informer5 CRON[5716]: pam_unix(cron:session): session closed for user root
    Sep 18 08:17:01 informer5 CRON[5721]: pam_unix(cron:session): session opened for user root by (uid=0)
    Sep 18 08:17:01 informer5 CRON[5722]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
    Sep 18 08:17:01 informer5 CRON[5721]: pam_unix(cron:session): session closed for user root
    Sep 18 08:25:01 informer5 CRON[5732]: pam_unix(cron:session): session opened for user root by (uid=0)
    Sep 18 08:25:01 informer5 CRON[5733]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
    Sep 18 08:25:01 informer5 CRON[5732]: pam_unix(cron:session): session closed for user root
    Sep 18 08:35:01 informer5 CRON[5745]: pam_unix(cron:session): session opened for user root by (uid=0)
    Sep 18 08:35:01 informer5 CRON[5746]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
    Sep 18 08:35:01 informer5 CRON[5745]: pam_unix(cron:session): session closed for user root
    Sep 18 08:45:01 informer5 CRON[5758]: pam_unix(cron:session): session opened for user root by (uid=0)
    Sep 18 08:45:01 informer5 CRON[5759]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
    Sep 18 08:45:01 informer5 CRON[5758]: pam_unix(cron:session): session closed for user root
    Sep 18 08:47:43 informer5 sudo[5774]: n_connor : TTY=pts/0 ; PWD=/opt/Informer5 ; USER=root ; COMMAND=/bin/cat /etc/systemd/system/informer.service
    Sep 18 08:47:43 informer5 sudo[5774]: pam_unix(sudo:session): session opened for user root by n_connor(uid=0)
    Sep 18 08:47:43 informer5 sudo[5774]: pam_unix(sudo:session): session closed for user root
    Sep 18 08:49:07 informer5 sudo[5777]: n_connor : TTY=pts/0 ; PWD=/opt/Informer5 ; USER=root ; COMMAND=/bin/systemctl start informer
    Sep 18 08:49:07 informer5 sudo[5777]: pam_unix(sudo:session): session opened for user root by n_connor(uid=0)
    Sep 18 08:49:07 informer5 systemd[5780]: informer.service: Failed at step CHDIR spawning /opt/Informer5/informer5.sh: No such file or directory
    -- Subject: Process /opt/Informer5/informer5.sh could not be executed
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- The process /opt/Informer5/informer5.sh could not be executed and failed.
    --
    -- The error number returned by this process is 2.
    Sep 18 08:49:07 informer5 systemd[1]: Starting Informer Docker...
    -- Subject: Unit informer.service has begun start-up
    -- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit informer.service has begun starting up.
    Sep 18 08:49:07 informer5 systemd[1]: informer.service: Main process exited, code=exited, status=200/CHDIR
    Sep 18 08:49:07 informer5 systemd[1]: Failed to start Informer Docker.
    -- Subject: Unit informer.service has failed
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit informer.service has failed.
    --
    -- The result is failed.
    Sep 18 08:49:07 informer5 systemd[1]: informer.service: Unit entered failed state.
    Sep 18 08:49:07 informer5 systemd[1]: informer.service: Failed with result 'exit-code'.
    Sep 18 08:49:07 informer5 sudo[5777]: pam_unix(sudo:session): session closed for user root
    Sep 18 08:53:09 informer5 sudo[5787]: n_connor : TTY=pts/0 ; PWD=/opt/Informer5 ; USER=root ; COMMAND=/bin/systemctl status informer.service
    Sep 18 08:53:09 informer5 sudo[5787]: pam_unix(sudo:session): session opened for user root by n_connor(uid=0)
    Sep 18 08:53:09 informer5 systemd[1]: Configuration file /etc/systemd/system/informer.service is marked executable. Please remove executable permission bits. Proceeding anyway.
    Sep 18 08:53:09 informer5 sudo[5787]: pam_unix(sudo:session): session closed for user root
    Sep 18 08:54:01 informer5 sudo[5791]: n_connor : TTY=pts/0 ; PWD=/opt/Informer5 ; USER=root ; COMMAND=/bin/journalctl -xe
    Sep 18 08:54:01 informer5 sudo[5791]: pam_unix(sudo:session): session opened for user root by n_connor(uid=0)

Я думаючто существенная ошибка здесь informer.service: Failed at step CHDIR spawning /opt/Informer5/informer5.sh: No such file or directory

Я проверил, существует ли файл, и я могу вручную запустить службу, используя этот файл в качестве пользователя root.У меня есть домашний каталог, установленный в служебном файле.Я понятия не имею, откуда эта ошибка.Я использую Ubuntu 16.04, и я включил root-вход с помощью SSH.Есть идеи?

1 Ответ

0 голосов
/ 21 января 2019

Я добавил #! / Bin / bash в файл bash вверху, и это сработало, например:

nano server.sh

#!/bin/bash

echo "Serving Web App!"
serve -s build -p 4004

chmod + x server.sh

nano /etc/systemd/system/web.service

[Unit]
Description=Web App
After=network.target

[Service]
WorkingDirectory=/var/www/html/web
User=root
ExecStart=/var/www/html/web/server.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

Замечания

  1. Проверьте рабочий каталог, например, cd / var / www / html / web, если онне существует, создайте его, например, cd / var / www / html / web
...