Запустите скрипт на начальной загрузке

У меня есть сценарий для запуска JAVA-приложения автоматически.

# colors
red='\e[0;31m'
green='\e[0;32m'
yellow='\e[0;33m'
reset='\e[0m'

echoRed() { echo -e "${red}$1${reset}"; }
echoGreen() { echo -e "${green}$1${reset}"; }
echoYellow() { echo -e "${yellow}$1${reset}"; }

# Check whether the application is running.
# The check is pretty simple: open a running pid file and check that the process
# is alive.
isrunning() {
  # Check for running app
  if [ -f "$RUNNING_PID" ]; then
    proc=$(cat $RUNNING_PID);
    if /bin/ps --pid $proc 1>&2 >/dev/null;
    then
      return 0
    fi
  fi
  return 1
}

start() {
  if isrunning; then
    echoYellow "Test App Already Running"
    return 0
  fi

  pushd $APPLICATION_DIR > /dev/null
  nohup java -jar *.jar>test.out 2>test.err &
  echo $! > ${RUNNING_PID}
  popd > /dev/null

  if isrunning; then
    echoGreen "Test Application started"
    exit 0
  else
    echoRed "The Test Application has not started - check log"
    exit 3
  fi
}

restart() {
  echo "Restarting Test Application"
  stop
  start
}

stop() {
  echoYellow "Stopping Test Application"
  if isrunning; then
    kill `cat $RUNNING_PID`
    rm $RUNNING_PID
  fi
}

status() {
  if isrunning; then
    echoGreen "Test Application is running"
  else
    echoRed "Test Application is either stopped or inaccessible"
  fi
}

case "$1" in
start)
    start
;;

status)
   status
   exit 0
;;

stop)
    if isrunning; then
        stop
        exit 0
    else
        echoRed "Application not running"
        exit 3
    fi
;;

restart)
    stop
    start
;;

*)
    echo "Usage: $0 {status|start|stop|restart}"
    exit 1
esac

отошлите:-https://vertx.io/blog/vert-x-3-init-d-script/

когда я выполняю это использование команды sudo service test start, хорошо работать. Я хочу работать, это автоматически на загружается. Я попробовал к созданию test.service файл на /etc/systemd/system. Когда я выполняю сервисы, не запускающиеся.

[Unit]
Description=Test service
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
User=test
ExecStart=/etc/init.d/test start

[Install]
WantedBy=multi-user.target

Что не так с этим?

1
задан 17 December 2018 в 07:29

1 ответ

Вы не должны писать systemd сценарий test.service для включения init.d сценария на начальной загрузке. Если Ваш init.d сценарий уже хорошо работает, просто необходимо позволить init.d сценарию работать на начальной загрузке следующими командами.

sudo update-rc.d test defaults
sudo update-rc.d test enable
1
ответ дан 7 December 2019 в 15:10

Другие вопросы по тегам:

Похожие вопросы: