2013-05-10 3 views
0
#!/bin/bash 

. /etc/init.d/functions 

NAME=foo 
DIR=/home/amit/Desktop 
EXEC=foo.pl 
PID_FILE=/var/run/foo.pid 
IEXE=/etc/init.d/foo 
RUN_AS=root 

if [ ! -f $DIR/$EXEC ] 
then 
    echo "$DIR/$EXEC not found." 
    exit 
fi 

case "$1" in 
start) 
    echo -n "Starting $NAME" 
cd $DIR 
/home/amit/Desktop/foo.pl 
    echo "$NAME are now running." 
    ;; 
stop) 
echo -n "Stopping $NAME" 
    kill -TERM `cat $PID_FILE` 
rm $PID_FILE 
    echo "$NAME." 
    ;; 
force-reload|restart) 
    $0 stop 
    $0 start 
    ;; 
    submit) 
    echo $2 >> /tmp/jobs 
    ;; 
    *) 
    echo "Use: /etc/init.d/$NAME {start|stop|restart|force-reload}" 
    exit 1 
    ;; 
esac 
exit 0 

Я создал демон с параметрами запуска и остановки (сервис foo start/stop), и он отлично работает. Теперь я хочу отправить вход в dameon. что-то вроде «service foo submit [argument]». Я хочу знать - если пользователь вводит «сервис foo submit alexander», как можно отправить александр на работающего демона?Как отправить ввод демона в Linux

ответ

0

Если я получаю вопрос правильно - так же, как вы уже используете позиционный вар $ 1 вы можете поставить остальные аргументы команды, а также, то есть:

«your_start_up_script» [переключатель в сценарии как $ 1] [аргумент 2 будет доступен через $ 2] [аргумент 3 будет доступен через $ 3]
Тогда внутри скрипта вы делаете:

 
    case "$1" in 
start) 
    echo -n "Starting $NAME" 
cd $DIR 
/home/amit/Desktop/foo.pl "$2" "$3"
+0

спасибо за ответ. Но я не хочу передавать аргументы в scsript, когда я говорю об запуске службы foo. Когда я говорю «service foo start», скрипт запускается как демон в цикле while. затем, когда пользователь говорит «service foo submit argument», мне нужно передать аргумент работающему демону. –

+0

Я вижу, в основном вы имеете в виду «как мне общаться с запущенным процессом через оболочку bash», правильно ли я? Если это так, то действительно, как вы начинаете этот демон, это не так важно ... – Yuri

+0

Да, вы являетесь corect. можете ли вы предложить мне какие-либо вопросы, что я могу общаться с запущенным демоном и передавать аргументы после запуска демона? Но я хочу общаться с демоном через «service foo submit » –

Смежные вопросы