Назад | Перейти на главную страницу

имя сценария в сценарии инициализации

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

У меня нет проблем с любым из вышеперечисленных, пока сервер работает, но когда он загружается, он создает файл PID и экран с неправильными именами, например:

/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: он работает правильно, когда я нахожусь на сервере и выполняю «запуск службы», но не при загрузке.

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

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

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

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