Systemd отправляет сигнал выхода на обслуживание при запуске

Это моя служба systemd на ubuntu 16.04:

[Unit] Description=Starts Caspar CG [Service] Type=forking WorkingDirectory=/home/broadcastingza/CasparCG/Server Environment=DISPLAY=:0 ExecStart=/bin/sh ./run.sh --watch StandardOutput=null Restart=on-failure [Install] WantedBy=multi-user.target graphical.target 

EDIT: это результат состояния sudo systemctl -l

 sudo systemctl status start-caspar.service -l ● start-caspar.service - Starts Caspar CG Loaded: loaded (/etc/systemd/system/start-caspar.service; enabled; vendor preset: enabled) Active: inactive (dead) since Tue 2017-03-21 17:04:28 SAST; 1 day 16h ago Process: 5198 ExecStart=/bin/bash -c ./run.sh --watch (code=exited, status=0/SUCCESS) Mar 21 17:04:14 ZAPS001 systemd[1]: Starting Starts Caspar CG... Mar 21 17:04:28 ZAPS001 systemd[1]: Started Starts Caspar CG. 

Эта служба активируется и работает нормально. Нет проблем с запуском вручную. Единственная проблема, с которой я столкнулась, заключается в том, что, как только запускается сценарий оболочки («run.sh»), сервер, который он запускает, затем получает сигнал EXIT и выходит с кодом EXIT 0. Почти так, как будто серверу требуется консоль должна быть открыта все время.

Когда я запускаю тот же скрипт с консоли, он работает отлично.

Есть ли способ запустить сервис без выхода из консоли сразу, или есть способ запустить службу, не зависимую от консоли, в первую очередь?

One Solution collect form web for “Systemd отправляет сигнал выхода на обслуживание при запуске”

Приношу свои извинения всем. Кажется, это известная проблема в двоичном коде, что я пытаюсь запустить безголовый (casparcg). См. https://github.com/CasparCG/Server/issues/529

Предлагаемое решение – установить экран (или tmux) для запуска терминала в отдельном режиме. У меня есть работа с использованием экрана.

  1. Экран установки:

    sudo apt install screen

  2. Это строка кода для использования в службе systemd после установки:

    screen -d -m /path/to/your/script.sh

-d отделяет терминал, -m игнорирует $ STY.

  1. Отрегулируйте службу systemd соответственно:

    [Unit]
    Description=Starts Caspar CG

    [Service]
    Type=forking
    Environment=DISPLAY=:0
    StandardOutput=null
    ExecStart=/bin/sh -c "screen -d -m /usr/bin/start_caspar.sh" --watch
    Restart=on-failure
    User=broadcastingza

    [Install]
    WantedBy=multi-user.target graphical.target

Теперь я могу запустить сервер отдельно.

Спасибо за помощь!

  • Как восстановить потерянные метаданные разрешения в / etc?
  • xinerama, 2 карты, 3 монитора
  • MacOS X Mavericks, работающий с VirtualBox, не может взаимодействовать с Linux VM
  • Ubuntu 14.04 с использованием пространства подкачки на 100%, с более чем 40 ГБ свободной памяти, почему?
  • Есть ли какая-либо команда linux для ускорения выполнения файлов?
  • Не удалось получить библиотеку Open Library Art Library RSS
  • Заменить папку specificc в tar.gz
  • vcenter сервер в Linux?
  • Дублирование ошибки PV в GParted при попытке удалить настройку RAID1
  • Ubuntu 14.04 сбой при подключении 2 мониторов
  • Создание xorg.conf сделало мой терминал розовым
  • Linux и Unix - лучшая ОС в мире.