Скрипт начальной загрузки init.d start-stop-daemon: нераспознанная опция --no-close
После символической ссылки мое приложение на /etc/init.d/myappname.
/etc/init.d/myappname начало дает "Failed to start"
/var/log/appname.log сообщает
"start-stop-daemon: unrecognized option '--no-close'"
когда я уберу --no-close
, банка становится поврежденной и не может больше работать. Я поражен.
bdw my jar - полностью исполняемая банка то есть, когда я запускаю банку в одиночку, она нормально запускает прыгун.
что здесь не так?
РЕДАКТИРОВАТЬ:
do_start() {
working_dir=$(dirname "$jarfile")
pushd "$working_dir" > /dev/null
if [[ -n "$run_user" ]]; then
mkdir "$PID_FOLDER" &> /dev/null
checkPermissions || return $?
chown "$run_user" "$PID_FOLDER"
chown "$run_user" "$pid_file"
chown "$run_user" "$log_file"
if [ $USE_START_STOP_DAEMON = true ] && type start-stop-daemon > /dev/null 2>&1; then
arguments=(-Dsun.misc.URLClassPath.disableJarChecking=true $JAVA_OPTS -jar $jarfile $RUN_ARGS "$@")
start-stop-daemon --start --quiet \
--chuid "$run_user" \
--name "$identity" \
--make-pidfile --pidfile "$pid_file" \
--background --no-close \
--startas "$javaexe" \
--chdir "$working_dir" \
-- "${arguments[@]}" \
>> "$log_file" 2>&1
await_file "$pid_file"
else
su -s /bin/sh -c "$command >> \"$log_file\" 2>&1 & echo \$!" "$run_user" > "$pid_file"
fi
pid=$(cat "$pid_file")
else
checkPermissions || return $?
$command >> "$log_file" 2>&1 &
pid=$!
disown $pid
echo "$pid" > "$pid_file"
fi
[[ -z $pid ]] && { echoRed "Failed to start"; return 1; }
echoGreen "Started [$pid]"
}
3 ответа
Скопируйте свое приложение в
/var/appname/appname.jar
Убедитесь, что это исполняемый файл:
sudo chmod +x "/var/appname/appname.jar"
Создать файл конфигурации
/var/appname/appname.conf
со следующим содержаниемUSE_START_STOP_DAEMON=false
Следуйте инструкциям из справочника Spring Boot
Чтобы установить приложение Spring Boot в качестве службы init.d, просто создайте символическую ссылку:
$ sudo ln -s /var/appname/appname.jar /etc/init.d/appname
После установки вы можете запускать и останавливать службу обычным способом. Например, в системе на основе Debian:
$ service appname start
Запустите "service myappname start", как указано в документе http://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html
Существует разница между /etc/init.d/myappname start и сервером myappname start
Я наконец-то решил эту проблему.
--no-close
это параметр, который был "недавно" добавлен в start-stop-daemon
http://manpages.ubuntu.com/manpages/wily/man8/start-stop-daemon.8.html
Я запускаю свой app.jar в Ubuntu 12.04 LTS, у которого есть start-stop-daemon 1.16.1.2 для Debian
Вы можете знать, какую версию вы используете, используя:
start-stop-daemon --version
на консоли Linux.
Я скачал более новую версию start-stop-daemon на
https://pkgs.org/ubuntu-14.04/ubuntu-main-amd64/dpkg_1.17.5ubuntu5_amd64.deb.html
Установите пакет deb, и весенний загрузочный кувшин, наконец, запустится.