2015-11-19 5 views
0

Когда я уволил svcs -a, я получил legacy_run 11:47:21 lrc:/etc/rc3_d/S99hrms_init_sh , но в зоне перезагрузки этот сценарий не выполняется. Но он работает правильно, используя /etc/init.d/hrms_init.sh start. Я использовал ln -s /etc/init.d/hrms_init.sh /etc/rc3.d/S99hrms_init.sh , чтобы установить его в rc3.d. Отредактировано: добавлен файл сценария.Запустить скрипт на старте Solaris

Script

#!/bin/sh 

SERVER="/root/hrms/app.js" 

do_stop() 
{ 
    echo -n $"Stopping $SERVER: " 
    pid=`ps -ef | grep "node $SERVER" | grep -v " grep " | awk '{print $2}'` 
    kill -9 (ps -ef | grep "node $SERVER" | grep -v " grep " | awk '{print $2}') > /dev/null 2>&1 
    RETVAL=$? 
} 

case "$1" in 
    start) 
      node /root/hrms/app.js 
      RETVAL=$? 
      ;; 
    stop) 
      do_stop 
      ;; 
    restart) 
      do_stop 
      do_start 
      ;; 
    *) 
      echo "Usage: $0 {start|stop|restart}" 
      RETVAL=1 
esac 

exit $RETVAL 

Также судимы манифеста link. Но этот манифест показывает онлайн *, но не работает.

+1

Каково содержание вашего сценария? Solaris использует скрипты 'sh' для ** source ** init, а' sh' не 'bash', несмотря на то, что Linux объединяет два. –

+0

@AndrewHenle обновлено –

ответ

1

Сценарий выполняется при загрузке, но не выполняется, если команда node отсутствует в PATH по умолчанию. Если это так, вам нужно установить ожидаемый PATH в сценарии запуска.

Кстати,

echo -n $"Stopping $SERVER: " 

является поддельным, должно быть:

printf "Stopping $SERVER: "