название сценария в рамках init сценария

У меня есть сценарий /etc/init.d/startup, где я делаю следующее:

  • создание файла PID, который должен быть похожим: /var/run/**startup**.pid
  • выполнение экрана процесса Java, таким образом, мне понравится создавать экран с запуском имени (как этот экран-dmS запуск "путь к сценарию"

У меня нет проблем ни с одним вышеупомянутым, в то время как сервер работает, но когда это загружается, это создает PIDfile и экран с неправильными именами как это:

/var/run/**S92startup**.pid

2058.**S92startup** (11/10/2014 03:56:31 PM)    (Detached)

Как я могу присвоить название сценария при начальной загрузке? (не название символьной ссылки в /etc/rc2.d/)

Прямо сейчас мой сценарий похож на это вначале, и это - то, как я получаю название сценария

SCRNAME=${0##*/}

DAEMON="screen -DmS $SCRNAME /srv/startup/scripts/gprs.sh"

PIDFILE=/var/run/$SCRNAME.pid

PS: это работает правильно, когда я нахожусь на сервере и выполняю "сервисный запуск, запускаются", но не при начальной загрузке.

1
задан 27 December 2014 в 13:27
1 ответ

Проблема в том, что когда скрипт вызывается по символической ссылке, $ 0 установлен на символическую ссылку, а не на исходный скрипт.

Вы можете сделать это:

SCRNAME=$(readlink "$0" || echo $0)
SCRNAME=${SCRNAME##*/}

readlink напечатает цель ссылки, если источником является ссылка.

0
ответ дан 4 December 2019 в 08:23

Теги

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