আমি একটি শেল স্ক্রিপ্ট পেয়েছি, যা মূলত কিছু লগিং সহ একটি লাইনার, যা আমি এটি একটি init স্ক্রিপ্ট থেকে চালানোর চেষ্টা করছি। আমি এটি চালানোর জন্য daemon
ভিতরে ফাংশনটি ব্যবহার করছি /etc/init.d/functions
, কারণ রেহ্যাটের উপলব্ধ নেই start-stop-daemon
available আমি যখন init স্ক্রিপ্টটি কল করি ( /etc/init.d/script start
) এটি প্রক্রিয়াটি শেষ করে এবং চালিয়ে যাওয়ার চেয়ে অগ্রভাগে অবস্থান করে। এই স্ক্রিপ্টটি ডেমনাইজড করার উপযুক্ত উপায় কী?
চালিত স্ক্রিপ্ট:
# conf file where variables are defined
. /etc/script.conf
echo "Starting..." | logger -i
echo "Monitoring $LOG_LOCATION." | logger -i
echo "Sending to $MONITOR_HOST:$MONITOR_PORT." | logger -i
tail -n 1 -F $LOG_LOCATION |
grep WARN --line-buffered |
/usr/bin/nc -vv $MONITOR_HOST $MONITOR_PORT 2>&1 |
logger -i
আরআইডি স্ক্রিপ্ট:
#!/bin/bash
# Source Defaults
. /etc/default/script
# Source init functions
. /etc/init.d/functions
prog=/usr/local/bin/script.sh
[ -f /etc/script.conf ] || exit 1
RETVAL=0
start()
{
# Quit if disabled
if ! $ENABLED; then
echo "Service Disabled in /etc/default/script"
exit 1
fi
echo "Starting $prog"
daemon $prog
RETVAL=$?
return $RETVAL
}
stop ()
{
echo -n $"Stopping $prog: "
killproc $prog
RETVAL=$?
return $RETVAL
}
reload()
{
echo "Reload command is not implemented for this service."
return $RETVAL
}
restart()
{
stop
start
}
condrestart()
{
echo "Not Implemented."
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $prog
;;
restart)
restart
;;
reload)
reload
;;
condrestart)
condrestart
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
RETVAL=1
esac
ব্যাশ -vx দিয়ে শেষ ~ 20 লাইন কার্যকর করা:
+ case "$1" in
+ start
+ true
+ echo 'Starting /usr/local/bin/script.sh'
Starting /usr/local/bin/script.sh
+ daemon /usr/local/bin/script.sh
+ local gotbase= force=
+ local base= user= nice= bg= pid=
+ nicelevel=0
+ '[' /usr/local/bin/script.sh '!=' /usr/local/bin/script.sh ']'
+ '[' -z '' ']'
+ base=script.sh
+ '[' -f /var/run/script.sh.pid ']'
+ '[' -n '' -a -z '' ']'
+ ulimit -S -c 0
+ '[' -n '' ']'
+ '[' color = verbose -a -z '' ']'
+ '[' -z '' ']'
+ initlog -q -c /usr/local/bin/script.sh
daemon
, আরপিএম প্যাকেজও রয়েছে । বিটিডব্লিউ, এখানে অনেক লগ নিরীক্ষণের সরঞ্জাম রয়েছে ( এখানে শুরু করুন )।
#!/bin/bash -vx
? আমি এটি করার চেষ্টা করেছি, তবে এটি শর্ট স্ক্রিপ্টটি সরাসরি চালনা করলে এটি আরআর স্ক্রিপ্ট থেকে একই আউটপুট তৈরি করে না।
bash -vx
। bash -vx /etc/init.d/script start
।
bash -vx ...
গিয়ে শেষ লাইনগুলি পোস্ট করেছেন যাতে আমরা দেখতে পারি যে অগ্রভাগে কী রয়েছে।