Я думаю, что часть проблемы в том, что есть несколько способов запустить приложение при запуске.
Демон что - то вроде старой DOS ТМР - ее приложение, которое началось и работает в фоновом режиме.
«Классические» способы сделать это с помощью сценария инициализации (который, как правило, немного сложен в написании) - но они несколько устарели, или crontab - который буквально просто вещь, предназначенная для запуска определенных задач одновременно.
Команда service ссылается на upstart, который обрабатывает то, что сделали сценарии инициализации, но с 16.04 ее заменяет systemd. Он используется для systemd для людей, переходящих с upstart, но стоит заменить «service» на «systemctl» - что делает то же самое и многое другое.
Напишите свой скрипт для systemd.
Зачем? Его поддерживают, и будет в долгосрочной перспективе. У него довольно разумный синтаксис. Документация тоже на самом деле довольно приличная.
Также есть переменные окружения, которые должны быть объявлены и установлены в ~ / .profile (я думаю, они могут пойти куда угодно), и я не уверен, что crontab «читает» эти переменные окружения, по крайней мере, это то, что я прочитал.
Согласно документации systemd (и для дальнейшего чтения - этот вопрос AU и документация Ubuntu )
Вы можете добавить строку с переменными среды с такой строкой, как
Окружающая среда = "ОДИН = один" "ДВА = два два"
Вы также можете запустить его как определенного пользователя или в определенное время. Вы можете даже тривиально перезапустить его автоматически