Skrypt killujący procesy
: 18 września 2018, 18:34
Witajcie. Potrzebuję pomocy ze skryptem startującym/stopującym transcoder shoutcast. Chodzi dokładnie o to, że gdy chcę zatrzymać transcoder wpisujac :
./pilot stop WYSKAKUJE KOMUNIKAT :
Odpowiada za to ta linia:
Cały skrypt :
Dzięki za pomoc.
./pilot stop WYSKAKUJE KOMUNIKAT :
Kod: Zaznacz cały
root@185a140b121c108:/home/serwery/club# ./pilot stop
./pilot: 43: ./pilot: [[: not found
Pilot 'club' nie jest odpalony!
Kod: Zaznacz cały
if [[ `ps ax | grep $PID | grep -v grep` ]]
Kod: Zaznacz cały
#! /bin/sh
#
# Start the PILOT for shoutcast!!!.
#
# by Aesthetic
USR=`pwd | sed 's![a-zA-Z0-9_]*/!!g'`
PID=`cat $USR.trans.pid`
DIR=`pwd`
DIRP=/home/serwery/$USR/
DIR_MP3=${DIRP}mp3/
DIR_CONF=${DIRP}conf/
CALFILE=calendar.xml
DJFILE=dj.conf
PLS=pls.tmp
DIR_PLAYLISTS=${DIRP}playlists/
APP=sc_trans
IEPARAMS=sc_pilot.ie
TMPPARAMS=sc_pilot.tmp
PARAMS=sc_pilot.conf
USRBIN=/usr/bin/
case "$1" in
start)
if [[ `ps ax | grep $PID | grep -v grep` ]]
then
echo "Pilot dla usera '$USR' juz jest odpalony!"
else
echo "Generuje plik konfiguracyjny!"
$0 playlists
cat $IEPARAMS $TMPPARAMS $DIR_CONF$DJFILE $PLS > $PARAMS
echo "calendarfile=$DIR_CONF$CALFILE" >> $PARAMS
echo "Plik konfiguracyjny wygenerowany!"
echo "Odpalam pilota dla usera '$USR'!";
$0 update
cd $DIR
./$APP $PARAMS > /dev/null & echo $! > $USR.trans.pid
echo "Pilot odpalony!"
fi
;;
stop)
if [[ `ps ax | grep $PID | grep -v grep` ]]
then
echo "Zatrzymuje pilota '$USR'!"
kill -s KILL $PID
echo "Pilot wylaczony!"
else
echo "Pilot '$USR' nie jest odpalony!"
fi
;;
reload)
kill -s USR1 $PID
echo "Laduje nowa playliste do pilota!"
;;
next)
kill -s WINCH $PID
echo "Skacze do nastepnego kawalku!"
;;
update)
echo "Generuje refresh glownej playlisty!"
#${USRBIN}find . -ctime -4 > bla.txt
${USRBIN}find $DIR_MP3 -type f -name "*.mp3" | ${USRBIN}sort | sed -e 's!\[!\\\[!g' -e 's!\]!\\\]!g' -e '$s/$/\n\n###!EOF/' > play_pilot.lst
sleep 2
echo "Playlista gotowa!"
;;
test)
echo "test"
${USRBIN}find -version
echo "test2"
;;
playlists)
echo "Dodaje playlisty z folderu playlists!"
${USRBIN}find $DIR_PLAYLISTS -type f -name "*.lst" | sed '
h #save to hold space
s/.*\//=/ #remove path but add '=' instead
s/.lst// #remove extension from every line
s/^/playlistfilename_/ #add string to beginning of line
= #print line number
p #print stripped filename
= #print line number
x #print string in hold space
s/.*\//=&/ #add '=' before filepath
s/^/playlistfilepath_/ #add string to beginning of line
' | sed -e 'N;s/\n//' \
-e 's!^\([0-9+]\)\([a-zA-Z0-9_-]*\)=!\2\1=!' \
-e '$s/\([a-zA-Z_-]*\)[0-9][0-9]*/\10/' > $PLS
${USRBIN}tail -1 $PLS > ${PLS}x
cat $PLS >> ${PLS}x
cat ${PLS}x | sed '$d' | sed '$s/\([a-zA-Z_-]*\)[0-9][0-9]*/\10/' > $PLS
${USRBIN}tail -1 $PLS > ${PLS}x
cat $PLS >> ${PLS}x
cat ${PLS}x | sed '$d' > $PLS
rm ${PLS}x
sleep 1
echo "Wpisy gotowe!"
;;
restart)
$0 stop
$0 start
;;
usage)
sudo quota $USR | tail -n 1
;;
status)
# check if servers are running
if [[ `ps ax | grep $PID | grep -v grep` ]]
then
echo "UP"
else
echo "DOWN"
fi
;;
*)
echo "Usage: $0 {start|stop|restart|update|status|reload|next|usage|playlists}"
exit 1
;;
esac
exit 0