У него есть уже работающий скрипт. Ничего не сломалось. Зачем его куда-то переделывать? Ну, если нет никаких других интересных дел, можно и заняться настройками ради настроек.
Посмотрел по диагонали. Какой ужас. Функция обновления не должна выполнятся системой инициализации. Принцип разделения ответственности.
Она и не выполняется системой инициализации. Система инициализации вызывает этот скрипт с start|stop. А update делается когда скрипт вызывается с параметром update - вручную. Это просто скрипт технического сопровождения minecraft сервера, с интерфейсом к sysvinit в том числе, но имеющий и другие функции.
Его ответственность - обёртка взаимодействия с интерактивным джава-блобом в консольную команду. И всё с ним хорошо.
Если очень хочется, можешь написать для systemd заглушку, которая будет вызывать этот скрипт с start и stop параметром. Но вообще такая заглушка там и так есть, для всех скриптов сразу.
Команды `systemctl start minecraft` и `systemctl stop minecraft` работают же?
А update делается когда скрипт вызывается с параметром update - вручную.
Я это и имею в виду. В один скрипт намешано. Должен быть отдельный скрипт для обновления. Если ему нужно остановить сервис, то он идёт на поклон к системе инициализации.
Хейтите sd за монолитизм в пику юниксвейности, а сами тем же самым занялись.
Хейтите sd за монолитизм в пику юниксвейности, а сами тем же самым занялись.
Я нигде не хейтил монолитизм, и вообще в религиозных спорах не участвовал. systemd просто весь кривой - ибо его писали странные люди, вот и все претензии.
Раскидывать управление монолитом (каковым является minecraft server) по куче разных мест - это как раз плохо. Что-нить исправишь в одном месте, про другое забудешь. А так всё в одном файле который целиком и обновляется.
Нет, я не предлогаю ничего ломать, работает и пусть работает, но если ТС задался таким вопросом, значит и правда нет дел более интересных/нужных, мочему бы не освоить другой метод запуска?