systemd останавливает OrientDB сразу после запуска в Ubuntu 16.04

Я пытаюсь заставить OrientDB работать как демон (включенный при запуске) в Ubuntu 16.04 LTS. Проблема в том, что systemd, кажется, вызывает стоп сразу после того, как я говорю ему начать. У меня есть этот служебный файл systemd точно так, как рекомендовано в документации OrientDB:

[Unit]
Description=OrientDB Server
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
Type=forking
ExecStart=$ORIENTDB_HOME/bin/orientdb.sh start
ExecStop=$ORIENTDB_HOME/bin/orientdb.sh stop
ExecStatus=$ORIENTDB_HOME/bin/orientdb.sh status

orientdb.log:

           .                                          
          .`        `                                 
          ,      `:.                                  
         `,`    ,:`                                   
         .,.   :,,                                    
         .,,  ,,,                                     
    .    .,.:::::  ````                                 :::::::::     :::::::::   
    ,`   .::,,,,::.,,,,,,`;;                      .:    ::::::::::    :::    :::  
    `,.  ::,,,,,,,:.,,.`  `                       .:    :::      :::  :::     ::: 
     ,,:,:,,,,,,,,::.   `        `         ``     .:    :::      :::  :::     ::: 
      ,,:.,,,,,,,,,: `::, ,,   ::,::`   : :,::`  ::::   :::      :::  :::    :::  
       ,:,,,,,,,,,,::,:   ,,  :.    :   ::    :   .:    :::      :::  :::::::     
        :,,,,,,,,,,:,::   ,,  :      :  :     :   .:    :::      :::  :::::::::   
  `     :,,,,,,,,,,:,::,  ,, .::::::::  :     :   .:    :::      :::  :::     ::: 
  `,...,,:,,,,,,,,,: .:,. ,, ,,         :     :   .:    :::      :::  :::     ::: 
    .,,,,::,,,,,,,:  `: , ,,  :     `   :     :   .:    :::      :::  :::     ::: 
      ...,::,,,,::.. `:  .,,  :,    :   :     :   .:    :::::::::::   :::     ::: 
           ,::::,,,. `:   ,,   :::::    :     :   .:    :::::::::     ::::::::::  
           ,,:` `,,.                                  
          ,,,    .,`                                  
         ,,.     `,                                          GRAPH DATABASE  
       ``        `.                                                          
                 ``                                          orientdb.com
                 `                                    
pid file detected, killing process

системный журнал:

Jul 28 18:56:34 ubuntu systemd[1]: Starting OrientDB Server...
Jul 28 18:56:34 ubuntu orientdb.sh[17487]: Starting OrientDB server daemon...
Jul 28 18:56:34 ubuntu systemd[1]: Created slice User Slice of orientdb.
Jul 28 18:56:34 ubuntu systemd[1]: Starting User Manager for UID 999...
Jul 28 18:56:34 ubuntu systemd[1]: Started Session c5 of user orientdb.
Jul 28 18:56:34 ubuntu systemd[17497]: Reached target Timers.
Jul 28 18:56:34 ubuntu systemd[17497]: Reached target Paths.
Jul 28 18:56:34 ubuntu systemd[17497]: Reached target Sockets.
Jul 28 18:56:34 ubuntu systemd[17497]: Reached target Basic System.
Jul 28 18:56:34 ubuntu systemd[17497]: Reached target Default.
Jul 28 18:56:34 ubuntu systemd[17497]: Startup finished in 23ms.
Jul 28 18:56:34 ubuntu systemd[1]: Started User Manager for UID 999.
Jul 28 18:56:34 ubuntu orientdb.sh[17508]: Stopping OrientDB server daemon...
Jul 28 18:56:34 ubuntu systemd[1]: Started Session c6 of user orientdb.
Jul 28 18:56:34 ubuntu systemd[1]: Started OrientDB Server.
Jul 28 18:56:34 ubuntu systemd[1]: Stopping User Manager for UID 999...
Jul 28 18:56:34 ubuntu systemd[17497]: Reached target Shutdown.
Jul 28 18:56:34 ubuntu systemd[17497]: Starting Exit the Session...
Jul 28 18:56:34 ubuntu systemd[17497]: Stopped target Default.
Jul 28 18:56:34 ubuntu systemd[17497]: Stopped target Basic System.
Jul 28 18:56:34 ubuntu systemd[17497]: Stopped target Timers.
Jul 28 18:56:34 ubuntu systemd[17497]: Stopped target Paths.
Jul 28 18:56:34 ubuntu systemd[17497]: Stopped target Sockets.
Jul 28 18:56:34 ubuntu systemd[17497]: Received SIGRTMIN+24 from PID 17536 (kill).
Jul 28 18:56:34 ubuntu systemd[1]: Stopped User Manager for UID 999.
Jul 28 18:56:34 ubuntu systemd[1]: Removed slice User Slice of orientdb.

Любые идеи?


person austinsmorris    schedule 28.07.2016    source источник
comment
следовали ли вы руководству по этой ссылке (orientdb.com/docs/2.1/Unix-Service .html)?..   -  person lsavio    schedule 01.08.2016
comment
Да, это проблема. Я следовал документации (см. сценарии выше), и это не работает :).   -  person austinsmorris    schedule 01.08.2016
comment
хорошо, не могли бы вы открыть вопрос на Github? .. спасибо.   -  person lsavio    schedule 02.08.2016
comment
ты решил это? Та же проблема здесь, в Debian Jessie   -  person hwde    schedule 12.08.2016


Ответы (4)


Пока вы обертываете пользовательские сценарии инициализации (orientdb.sh, server.sh, shutdown.sh) в блоке обслуживания systemd у вас будет странный и жесткий для отладки проблем.

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

person Timothée Ravier    schedule 08.08.2016

Я добавил пользователя и группу orientdb в систему и использовал приведенный ниже скрипт systemd (при условии, что orientdb установлен в /opt/orientdb):

[Unit]
Description=OrientDB Server
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=orientdb
Group=orientdb
ExecStart=/opt/orientdb/bin/server.sh
ExecStop=/opt/orientdb/bin/shutdown.sh
ExecReload=/bin/kill -HUP $MAINPID
person hwde    schedule 12.08.2016

Если вы запустите сервер и закроете окно, сервер будет закрыт. Используйте его с NOHUP (server.sh), и если вы закроете окно, оно продолжит работу.

У меня была такая же проблема, удачи

person Danicroque belmar    schedule 16.08.2016

У меня была такая же проблема с OpenSuse Leap 42.1 и OrientDB 2.2.7. Ответ Роберто решил это. См. проблему на GitHub.

person jack-y    schedule 18.08.2016