Служба Java systemd без указания java -jar

Вот один способ, в основном в awk:

#!/bin/sh

[ "$end" -ge "$start" ] || exit 1

awk -v start=$1 -v end=$2 '
  BEGIN {
    srand();
    for(i=1; i <= 6; i++)
      printf "%02d/%02d/%d\n", 1 + rand() * 28, 1 + rand() * 12, start + rand() * (end-start);
  }
' < /dev/null

Сценарий оболочки принимает два параметра и передает их как переменные в awk, который не читает ввод и выполняет всю работу в блоке BEGIN.

После заполнения генератор случайных чисел выполняет 6 циклов по оператору printf. Этот оператор печати выбирает подмножество возможных дат в диапазоне, генерируя случайное число от 1 до 28 для дня (, безопасного для февраля ), от 1 до 12 для месяца,и между заданными начальным и конечным годами. Это случайное, но не полное покрытие --, оно никогда не напечатает дни 29 -31 для месяцев, в которых они есть.

Другой способ: использование даты GNU и функций bash:

#!/bin/bash

start=$1
end=$2

[[ "$start" -le "$end" ]] || exit 1

startsec=$(date -d "1/1/$start" +%s)
for((i=1; i<=6; i++))
do
  r=$((RANDOM % (1 + end - start)*365*24*60*60))
  date -d @$((startsec + r)) +%d/%m/%Y
done

Он работает, вычисляя секунды -с -эпохи -1 января в дату начала, затем для каждого из циклов он добавляет случайное количество секунд смещения; случайное число ограничено количеством секунд, охватывающих заданный диапазон. Дата GNU затем манипулирует этой датой в желаемом формате.

0
30.03.2021, 18:47
2 ответа

Вы можете использовать поддержку ядра Linux для разных двоичных форматов (binfmt _misc ). Это позволяет вам зарегистрировать интерпретатор (, например. Java )для выполнения файла на основе первых нескольких байтов в файле (, например. jar-файл ). Видетьhttps://www.kernel.org/doc/Documentation/admin-guide/binfmt-misc.rstдля получения дополнительной информации.

1
28.04.2021, 22:54

Ваша ошибка связана с попыткой системы проанализировать файл jar -в поисках директивы интерпретатора-#!/interpreter.

Один из способов — просто создать сценарий оболочки -с именем rating-gateway-0.0.1-SNAPSHOT.jarи запустить из него приложение Java.

Таким образом, вы получите 2 файла:

  • /opt/rating-gateway/rating-gateway-0.0.1-SNAPSHOT.realjar.jar-ваша настоящая банка -файл
  • /opt/rating-gateway/rating-gateway-0.0.1-SNAPSHOT.jar-простая оболочка -скрипт следующего содержания:
#!/usr/bin/env sh

java -jar /opt/rating-gateway/rating-gateway-0.0.1-SNAPSHOT.jar
0
28.04.2021, 22:54

Теги

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