OnWorks Linux เปเบฅเบฐ Windows Online WorkStations

Logo

เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบญเบญเบ™เป„เบฅเบ™เปŒเบŸเบฃเบตเบชเปเบฒเบฅเบฑเบš WorkStations

<Previous | เป€เบ™เบทเป‰เบญเปƒเบ™ | เบ•เปเปˆเป„เบ›>

D.2. /lib/lsb/init-functions


#! / bin / sh

################################################ ######################

#

# เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ /lib/lsb/init-funtions

#

# เบฅเบฒเบโ€‹เบฅเบฐโ€‹เบญเบฝเบ” : เปเบฅเปˆเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบฅเบฐเบ”เบฑเบš

#

#! / bin / sh

################################################ ######################

#

# เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ /lib/lsb/init-funtions

#

# เบฅเบฒเบโ€‹เบฅเบฐโ€‹เบญเบฝเบ” : เปเบฅเปˆเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบฅเบฐเบ”เบฑเบš

#


# เบœเบนเป‰เบ‚เบฝเบ™

#

# เบญเบฑเบšเป€เบ”เบ”

#

# เบฅเบธเป‰เบ™

#

# เปเบฒเบ เป€เบซเบ”

#

#

#

#

# เบœเบนเป‰เบ‚เบฝเบ™

#

# เบญเบฑเบšเป€เบ”เบ”

#

# เบฅเบธเป‰เบ™

#

# เปเบฒเบ เป€เบซเบ”

#

#

#

#


################################################ ######################


## เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเบดเปˆเบ‡เปเบงเบ”เบฅเป‰เบญเบก

# เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก umask 022

เบชเบปเปˆเบ‡เบญเบญเบ PATH="/bin:/usr/bin:/sbin:/usr/sbin"


## เบ•เบฑเป‰เบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เบชเบต, เปƒเบŠเป‰เบœเปˆเบฒเบ™เบชเบฝเบ‡เบชเบฐเบ—เป‰เบญเบ™

# เบเบฐเบฅเบธเบ™เบฒเบ›เบถเบเบชเบฒ `man console_codes เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

# เบžเบฒเบเปƒเบ•เป‰เบชเปˆเบงเบ™ "ECMA-48 Set Graphics Rendition".

#

# เบ„เบณเป€เบ•เบทเบญเบ™: เป€เบกเบทเปˆเบญเบ›เปˆเบฝเบ™เบˆเบฒเบ 8bit เบกเบฒเป€เบ›เบฑเบ™ 9bit,

# linux console เบˆเบฐเบ•เบตเบ„เบงเบฒเบกเปœเบฒเปเปœเป‰เบ™เบ„เบทเบ™เปƒเปเปˆ (1;) to

################################################ ######################


## เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเบดเปˆเบ‡เปเบงเบ”เบฅเป‰เบญเบก

# เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก umask 022

เบชเบปเปˆเบ‡เบญเบญเบ PATH="/bin:/usr/bin:/sbin:/usr/sbin"


## เบ•เบฑเป‰เบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เบชเบต, เปƒเบŠเป‰เบœเปˆเบฒเบ™เบชเบฝเบ‡เบชเบฐเบ—เป‰เบญเบ™

# เบเบฐเบฅเบธเบ™เบฒเบ›เบถเบเบชเบฒ `man console_codes เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

# เบžเบฒเบเปƒเบ•เป‰เบชเปˆเบงเบ™ "ECMA-48 Set Graphics Rendition".

#

# เบ„เบณเป€เบ•เบทเบญเบ™: เป€เบกเบทเปˆเบญเบ›เปˆเบฝเบ™เบˆเบฒเบ 8bit เบกเบฒเป€เบ›เบฑเบ™ 9bit,

# linux console เบˆเบฐเบ•เบตเบ„เบงเบฒเบกเปœเบฒเปเปœเป‰เบ™เบ„เบทเบ™เปƒเปเปˆ (1;) to

เบฎเบนเบšเบžเบฒเบšเป€เบฅเบฑเบเบ™เป‰เบญเบ


# 256 glyphs เป€เบ—เบดเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ 9bit. เบ™เบตเป‰เป€เบฎเบฑเบ”

# เบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบเบฑเบš framebuffer consoles


NORMAL="\\033[0;39m" # console grey เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ SUCCESS="\\033[1;32m" # เบ„เบงเบฒเบกเบชเบณเป€เบฅเบฑเบ”เปเบกเปˆเบ™เบชเบตเบ‚เบฝเบง WARNING="\\033[1;33m" # เบ„เบณเป€เบ•เบทเบญเบ™เปเบกเปˆเบ™เบชเบตเป€เบซเบผเบทเบญเบ‡ FAILURE="\\ 033[1;31m" # เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเปเบกเปˆเบ™เบชเบตเปเบ”เบ‡ INFO="\\033[1;36m" # เบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเบ™เบชเบตเบŸเป‰เบฒเบ‚เบฝเบงเบญเปˆเบญเบ™ BRACKET="\\033[1;34m" # เบงเบปเบ‡เป€เบฅเบฑเบšเป€เบ›เบฑเบ™เบชเบตเบŸเป‰เบฒ


# เปƒเบŠเป‰เบ„เบณเบ™เบณเปœเป‰เบฒเบชเบต BMPREFIX=" "

SUCCESS_PREFIX="${SUCCESS} * ${NORMAL} " FAILURE_PREFIX="${FAILURE}*****${NORMAL} " WARNING_PREFIX="${WARNING} *** ${NORMAL}" SKIP_PREFIX="${ เบ‚เปเป‰เบกเบนเบ™} S ${normAL}"


SUCCESS_SUFFIX="${BRACKET}[${SUCCESS} เบ•เบปเบเบฅเบปเบ‡ ${BRACKET}]${NORMAL}" FAILURE_SUFFIX="${BRACKET}[${FAILURE} เบฅเบปเป‰เบกเป€เบซเบฅเบง ${BRACKET}]${NORMAL}" WARNING_SUFFIX="$ {BRACKET}[${WARNING} เป€เบ•เบทเบญเบ™ ${BRACKET}]${normAL}" SKIP_SUFFIX="${BRACKET}[${INFO} เบ‚เป‰เบฒเบก ${BRACKET}]${normAL}"


BOOTLOG=/run/bootlog KILLDELAY=3 SCRIPT_STAT="0"


# เบเปเบฒเบ™เบปเบ”เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบฅเบฐเบšเบธเป„เบงเป‰เป€เบŠเบฑเปˆเบ™: HEADLESS [ -r /etc/sysconfig/rc.site ] && . /etc/sysconfig/rc.site


## เบ‚เบฐเปœเบฒเบ”เปœเป‰เบฒเบˆเป

# เบŠเบญเบเบซเบฒเบ‚เบฐเบซเบ™เบฒเบ”เบซเบ™เป‰เบฒเบˆเปเบ›เบฐเบˆเบธเบšเบฑเบ™เบ–เป‰เบฒ [ -z "${COLUMNS}" ]; เปเบฅเป‰เบง

COLUMNS=$(เบ‚เบฐเปœเบฒเบ” stty) COLUMNS=${COLUMNS##* }

fi


# เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบฒเบ‡เป„เบ, เป€เบŠเบฑเปˆเบ™: เบžเบญเบ” serial, เบ‚เบฐเปœเบฒเบ” stty เบ•เบญเบšเบ„เปˆเบฒ 0 เบ–เป‰เบฒ [ "${COLUMNS}" = "0" ]; เปเบฅเป‰เบง

COLUMNS=80

fi


## เบเบฒเบ™เบงเบฑเบ”เปเบ—เบเบเบฒเบ™เบˆเบฑเบ”เบ•เบณเปเปœเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก COL=$((${COLUMNS} - 8))

WCOL=$((${COL} - 2))


## เบ•เบฑเป‰เบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เบณเปเปœเปˆเบ‡เป€เบ„เบตเป€เบŠเบต, เปƒเบŠเป‰เบœเปˆเบฒเบ™ echo SET_COL="\\033[${COL}G" # เบขเบนเปˆเบ—เบตเปˆ $COL char SET_WCOL="\\033[${WCOL}G" # เบขเบนเปˆ $WCOL char CURS_UP= "\\033[1A\\033[0G" # เบ‚เบถเป‰เบ™เปœเบถเปˆเบ‡เปเบ–เบง, เบขเบนเปˆเบ—เบตเปˆ 0'th Char CURS_ZERO="\\033[0G"


################################################ ##############################

# start_daemon() #

# เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰: start_daemon [-f] [-n nicelevel] [-p pidfile] pathname [args...] #

# #

# เบˆเบธเบ”โ€‹เบ›เบฐโ€‹เบชเบปเบ‡โ€‹: เบ™เบตเป‰โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป„เบงเป‰โ€‹เป€เบ›เบฑเบ™ daemon #

# #

เบฎเบนเบšเบžเบฒเบšเป€เบฅเบฑเบเบ™เป‰เบญเบ


# เบงเบฑเบ”เบชเบฐเบ”เบธเบ›เป‰เบญเบ™: -f: (เบšเบฑเบ‡เบ„เบฑเบš) เปเบฅเปˆเบ™เป‚เบ›เบฃเปเบเบฃเบกเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบˆเบฐเปเบฅเปˆเบ™เปเบฅเป‰เบงเบเปเบ•เบฒเบก. #

# -n nicelevel: เบฅเบฐเบšเบธเบฅเบฐเบ”เบฑเบšเบ‡เบฒเบก. เป€เบšเบดเปˆเบ‡ 'เบœเบนเป‰เบŠเบฒเบเบ‡เบฒเบก(1)'. #

# -p pidfile: เปƒเบŠเป‰เป„เบŸเบฅเปŒเบ—เบตเปˆเบฅเบฐเบšเบธเป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ” PIDs. #

# เบŠเบทเปˆเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡: เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเบชเบปเบกเบšเบนเบ™เป„เบ›เบซเบฒเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰ #

# args: arguments เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ—เบตเปˆเบชเบปเปˆเบ‡เบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™ (เบŠเบทเปˆเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡) #

# #

# เบ„เปˆเบฒเบเบฑเบšเบ„เบทเบ™ (เบ•เบฒเบกเบเบณเบ™เบปเบ”เป‚เบ”เบเบฅเบฐเบซเบฑเบ”เบญเบญเบ LSB): #

# 0 - เป‚เบ›เบฃเปเบเบกเบเบณเบฅเบฑเบ‡เปเบฅเปˆเบ™ เบซเบผเบทเบšเปเบฅเบดเบเบฒเบ™เปเบกเปˆเบ™ OK #

#1 - เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบปเปˆเบงเป„เบ› เบซเบผเบทเบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธ #

# 2 - เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡ เบซเบผเบทเบซเบผเบฒเบเป€เบเบตเบ™เป„เบ› #

# 5 - เป‚เบ„เบ‡เบเบฒเบ™เบšเปเปˆเป„เบ”เป‰เบ•เบดเบ”เบ•เบฑเป‰เบ‡ #

################################################ ##############################

start_daemon()

{

local force="" local nice="0" local pidfile="" local pidlist="" local retval=""


# เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡

do

เบเปเบฅเบฐเบ™เบต "${1}" เปƒเบ™


-f)


force="1" shift 1

;;


-n)


nice="${2}" shift 2

;;


-p)


pidfile="${2}" shift 2

;;


-*)


เบเบฑเบšเบ„เบทเบ™ 2

;;



เป€เบฎเบฑเบ”

*)


เบงเปˆเบฒ C


program="${1}" เบขเบธเบ”

;;


# เบเบงเบ”เป€เบšเบดเปˆเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡

เบ–เป‰เบฒ [ ! -e "${program}" ]; เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบเบฑเบšเบ„เบทเบ™ 5; เบŸเบต


# เบ›เบฐเบ•เบดเบšเบฑเบ”

เบ–เป‰เบฒ [ -z "${force}" ]; เปเบฅเป‰เบง

เบ–เป‰เบฒ [ -z "${pidfile}" ]; เปเบฅเป‰เบง

เบฎเบนเบšเบžเบฒเบšเป€เบฅเบฑเบเบ™เป‰เบญเบ


# เบเปเบฒเบ™เบปเบ” pid เป‚เบ”เบเบเบฒเบ™เบ„เบปเป‰เบ™เบžเบปเบš pidlist=`pidofproc "${1}"` retval="${?}"

เบญเบทเปˆเบ™

# เป„เบŸเบฅเปŒ PID เบ›เบฐเบเบญเบšเบกเบต PIDs เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™

# เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ•เบฒเบกเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡ LSB, เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ•เป‰เบญเบ‡เบ–เบทเบเบกเบญเบšเปƒเบซเป‰ pidofproc,

# เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบผเบทเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™. pidlist=`pidofproc -p "${pidfile}" "${1}"`

retval="${?}"

fi


# เบ•เบญเบšเบ„เปˆเบฒเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™

# เบกเบฑเบ™เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบ‚เบญเบ‡ init script (เบซเบผเบทเบซเบ™เป‰เบฒเบ—เบตเปˆเบเบฒเบ™เปเบˆเบเบขเบฒเบ).

# เป€เบžเบทเปˆเบญเบšเบฑเบ™เบ—เบถเบเบ‚เปเป‰เบ„เบงเบฒเบก! เบเปเบฅเบฐเบ™เบต "${retval}" เปƒเบ™


0)

# เป‚เบ›เบฃเปเบเบกเปเบฅเปˆเบ™เบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเป‰เบง, เบ™เบตเป‰เปเบกเปˆเบ™

# เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”. เบเบฑเบšเบ„เบทเบ™ 0

;;


1)

# เป‚เบ„เบ‡เบเบฒเบ™เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เบงเบฝเบ, เปเบ•เปˆเบกเบตเป„เบŸเบฅเปŒ pid เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡

# เป€เบญเบปเบฒเป„เบŸเบฅเปŒ pid เปเบฅเบฐเบชเบทเบšเบ•เปเปˆ rm -f "${pidfile}"

;;


3)

# เป‚เบ„เบ‡เบเบฒเบ™เบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเปเบฅเบฐเบšเปเปˆเบกเบต pidfile

# เบšเปเปˆเป€เบฎเบฑเบ”เบซเบเบฑเบ‡เป€เบฅเบตเบ, เปƒเบซเป‰ start_deamon เบชเบทเบšเบ•เปเปˆ.

;;


*)


เบงเปˆเบฒ C

fi


# เบญเบฑเบ™เบญเบทเปˆเบ™เบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เป‚เบ”เบเบ„เปˆเบฒเบชเบฐเบ–เบฒเบ™เบฐเบˆเบฐเบšเปเปˆเบ–เบทเบเบ•เบตเบ„เบงเบฒเบกเปเบฒเบ

# เปเบฅเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เป€เบ›เบฑเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธ. เบเบฑเบšโ€‹เบ„เบทเบ™ 1

;;


#เป€เบฅเบตเปˆเบก!

เบ‡เบฒเบก -n "${nice}" "${@}"

}


################################################ ##############################

# killproc() #

# เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰: killproc [-p pidfile] pathname [เบชเบฑเบ™เบเบฒเบ™] #

# #

# เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡: เบชเบปเปˆเบ‡เบชเบฑเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเป„เบ›เบเบฑเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เปเบฅเปˆเบ™ #

# #

# เบงเบฑเบ”เบชเบฐเบ”เบธเบ›เป‰เบญเบ™: -p pidfile, เปƒเบŠเป‰ pidfile เบ—เบตเปˆเบฅเบฐเบšเบธ #

# เบŠเบทเปˆเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡, เบŠเบทเปˆเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบซเบฒเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบฅเบฐเบšเบธ #

# เบชเบฑเบ™เบเบฒเบ™, เบชเบปเปˆเบ‡เบชเบฑเบ™เบเบฒเบ™เบ™เบตเป‰เป„เบ›เบซเบฒเบŠเบทเปˆเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ #

# #

# เบ„เปˆเบฒเบเบฑเบšเบ„เบทเบ™ (เบ•เบฒเบกเบเบณเบ™เบปเบ”เป‚เบ”เบเบฅเบฐเบซเบฑเบ”เบญเบญเบ LSB): #

# 0 - เป‚เบ›เบฃเปเบเบก (เบŠเบทเปˆเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡) เป„เบ”เป‰เบขเบธเบ”/เบขเบธเบ”เปเบฅเป‰เบง เบซเบผเบท #

เบฎเบนเบšเบžเบฒเบšเป€เบฅเบฑเบเบ™เป‰เบญเบ



#

เป‚เบ›เบฃเปเบเบกเปเบฅเปˆเบ™เป„เบ”เป‰เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เปเบฅเป‰เบง

เบชเบฑเบ™เบเบฒเบ™เปเบฅเบฐ

เบขเบธเบ”เป€เบŠเบปเบฒ

#

#

เบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”

#

#

1

- เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบปเปˆเบงเป„เบ› เบซเบผเบทเบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธ

#

#

2

- เบเบฒเบ™โ€‹เป‚เบ•เป‰โ€‹เบ–เบฝเบ‡โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบ–เบทเบโ€‹เบ•เป‰เบญเบ‡โ€‹เบซเบผเบทโ€‹เป€เบเบตเบ™โ€‹เป„เบ›

#

#

5

- เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ•เบดเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹

#

#

7

- เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เปเบฅเปˆเบ™โ€‹เปเบฅเบฐโ€‹เบชเบฑเบ™โ€‹เบเบฒเบ™โ€‹เปเบกเปˆเบ™โ€‹

เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰

#

################################################ ##############################

killproc()

{

local pidfile เป‚เบ›เบฃเปเบเบกเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ local prefix local progname

local signal="-TERM" local fallback="-KILL" local nosig

pidlist เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ retval pid เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™

local delay="30" local piddead เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ dtime


# เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡; เป€เบฎเบฑเบ”

เบเปเบฅเบฐเบ™เบต "${1}" เปƒเบ™

-p)

pidfile="${2}" shift 2

;;


*)

program="${1}"

เบ–เป‰เบฒ [-n "${2}" ]; เบˆเบฒเบเบ™เบฑเป‰เบ™ signal="${2}" fallback=""

เบญเบทเปˆเบ™

noig=1

fi


# เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ–เป‰เบฒ [ -n "${3}" ]; เปเบฅเป‰เบง

เบเบฑเบšเบ„เบทเบ™ 2

เบญเบทเปˆเบ™

เบžเบฑเบเบœเปˆเบญเบ™


เป€เบฎเบฑเบ”

fi

;;

เบงเปˆเบฒ C


# เบเบงเบ”เป€เบšเบดเปˆเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡

เบ–เป‰เบฒ [ ! -e "${program}" ]; เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบเบฑเบšเบ„เบทเบ™ 5; เบŸเบต


# เบเบงเบ”เป€เบšเบดเปˆเบ‡เบชเบฑเบ™เบเบฒเบ™ check_signal เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡ "${signal}"

เบ–เป‰เบฒ [ "${?}" -ne "0" ]; เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบเบฑเบšเบ„เบทเบ™ 2; เบŸเบต

เบฎเบนเบšเบžเบฒเบšเป€เบฅเบฑเบเบ™เป‰เบญเบ


# เบฎเบฑเบšเบฅเบฒเบเบŠเบทเปˆ pids

เบ–เป‰เบฒ [ -z "${pidfile}" ]; เปเบฅเป‰เบง

# เบเบณเบ™เบปเบ” pid เป‚เบ”เบเบเบฒเบ™เบ„เบปเป‰เบ™เบžเบปเบš pidlist=`pidofproc "${1}"` retval="${?}"

เบญเบทเปˆเบ™

# เป„เบŸเบฅเปŒ PID เบ›เบฐเบเบญเบšเบกเบต PIDs เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™

# เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ•เบฒเบกเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡ LSB, เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ•เป‰เบญเบ‡เบ–เบทเบเบกเบญเบšเปƒเบซเป‰ pidofproc,

# เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบผเบทเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™. pidlist=`pidofproc -p "${pidfile}" "${1}"`

retval="${?}"

fi


# เบ•เบญเบšเบ„เปˆเบฒเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™

# เบกเบฑเบ™เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบ‚เบญเบ‡ init script (เบซเบผเบทเบซเบ™เป‰เบฒเบ—เบตเปˆเบเบฒเบ™เปเบˆเบเบขเบฒเบ).

# เป€เบžเบทเปˆเบญเบšเบฑเบ™เบ—เบถเบเบ‚เปเป‰เบ„เบงเบฒเบก! เบเปเบฅเบฐเบ™เบต "${retval}" เปƒเบ™


0)

# เป‚เบ„เบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡

# เบขเปˆเบฒเป€เบฎเบฑเบ”เบซเบเบฑเบ‡เบขเบนเปˆเบ™เบตเป‰, เปƒเบซเป‰ killproc เบชเบทเบšเบ•เปเปˆ.

;;


1)

# เป‚เบ„เบ‡เบเบฒเบ™เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เบงเบฝเบ, เปเบ•เปˆเบกเบตเป„เบŸเบฅเปŒ pid เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡

# เป€เบญเบปเบฒเป„เบŸเบฅเปŒ pid เบญเบญเบ. rm -f "${pidfile}"


# เบ™เบตเป‰เป€เบ›เบฑเบ™เบžเบฝเบ‡เบ„เบงเบฒเบกเบชเบณเป€เบฅเบฑเบ” เบ–เป‰เบฒเบšเปเปˆเบกเบตเบชเบฑเบ™เบเบฒเบ™เบœเปˆเบฒเบ™. เบ–เป‰เบฒ [ -n "${nosig}" ]; เปเบฅเป‰เบง

เบเบฑเบšเบ„เบทเบ™ 0

เบญเบทเปˆเบ™

เบเบฑเบšเบ„เบทเบ™ 7

fi

;;


3)

# เป‚เบ„เบ‡เบเบฒเบ™เบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเปเบฅเบฐเบšเปเปˆเบกเบต pidfile

# เบ™เบตเป‰เป€เบ›เบฑเบ™เบžเบฝเบ‡เบ„เบงเบฒเบกเบชเบณเป€เบฅเบฑเบ” เบ–เป‰เบฒเบšเปเปˆเบกเบตเบชเบฑเบ™เบเบฒเบ™เบœเปˆเบฒเบ™. เบ–เป‰เบฒ [ -n "${nosig}" ]; เปเบฅเป‰เบง

เบเบฑเบšเบ„เบทเบ™ 0

เบญเบทเปˆเบ™

เบเบฑเบšเบ„เบทเบ™ 7

fi

;;


*)


เบงเปˆเบฒ C


# เบญเบฑเบ™เบญเบทเปˆเบ™เบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เป‚เบ”เบเบ„เปˆเบฒเบชเบฐเบ–เบฒเบ™เบฐเบˆเบฐเบšเปเปˆเบ–เบทเบเบ•เบตเบ„เบงเบฒเบกเปเบฒเบ

# เปเบฅเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เป€เบ›เบฑเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธ. เบเบฑเบšโ€‹เบ„เบทเบ™ 1

;;


# เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบชเบฑเบ™เบเบฒเบ™เบ—เบฒเบ‡เบญเบญเบเปเบฅเบฐเบชเบฑเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก check_sig_type "${signal}"


เบ–เป‰เบฒ [ "${?}" -eq "0" ]; เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ # เบชเบฑเบ™เบเบฒเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบขเบธเบ”เป‚เบ„เบ‡เบเบฒเบ™

เบฎเบนเบšเบžเบฒเบšเป€เบฅเบฑเบเบ™เป‰เบญเบ


# เบšเบฑเบ™เบŠเบตเบชเปเบฒเบฅเบฑเบš pidlist เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ (เป„เบŸเบฅเปŒ pid เบเบฑเบ‡เบกเบตเบขเบนเปˆเปเบฅเบฐเบšเปเปˆเบกเบต

# เบชเบฑเบ™โ€‹เบเบฒเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹)

เบ–เป‰เบฒ [ "${pidlist}" != "" ]; เปเบฅเป‰เบง


# เบ‚เป‰เบฒเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡ pids เบชเปเบฒเบฅเบฑเบš pid เปƒเบ™ ${pidlist}; เป€เบฎเบฑเบ”

kill -0 "${pid}" 2> /dev/null เบ–เป‰เบฒ [ "${?}" -ne "0" ]; เปเบฅเป‰เบง

# เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เปเบกเปˆเบ™เบ•เบฒเบเปเบฅเป‰เบง, เบชเบทเบšเบ•เปเปˆเบ•เปเปˆเป„เบ›เปเบฅเบฐเบ–เบทเบงเปˆเบฒเบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบชเบทเบšเบ•เปเปˆเป„เบ›เบ”เป‰เบงเบเบ”เบต

เบญเบทเปˆเบ™

เบ‚เป‰เบฒ "${signal}" "${pid}" 2> /dev/null


# เบฅเปเบ–เป‰เบฒเป€เบ–เบดเบ‡ ${delay}/10 เบงเบดเบ™เบฒเบ—เบตเป€เบžเบทเปˆเบญ "${pid}" เป„เบ›

# เบชเบดเป‰เบ™เบชเบธเบ”เปƒเบ™ 10ths เบ‚เบญเบ‡เบงเบดเบ™เบฒเบ—เบต


เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ [ "${delay}" -ne "0" ]; เป€เบฎเบฑเบ”

kill -0 "${pid}" 2> /dev/null || piddead="1" เบ–เป‰เบฒ [ "${piddead}" = "1" ]; เปเบฅเป‰เบงเปเบ•เบ; fi เบ™เบญเบ™ 0.1

delay="$(( ${delay} - 1 ))"

เป€เบฎเบฑเบ”


# เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบเบฒเบ™ fallback เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ•เบฑเป‰เบ‡โ€‹เป„เบงเป‰โ€‹, เปเบฅเบฐโ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบเบฑเบ‡โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบเบฒเบ™โ€‹, เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹

# เปƒเบŠเป‰เบ•เบปเบงเบชเบณเบฎเบญเบ‡

เบ–เป‰เบฒ [-n "${fallback}" -a "${piddead}" != "1" ]; เบˆเบฒเบเบ™เบฑเป‰เบ™เบ‚เป‰เบฒ "${fallback}" "${pid}" 2> /dev/null

เบ™เบญเบ™ 1

# เบเบงเบ”เป€เบšเบดเปˆเบ‡เบญเบตเบเบ„เบฑเป‰เบ‡, เปเบฅเบฐเบฅเบปเป‰เบกเป€เบซเบฅเบงเบ–เป‰เบฒเบเบฑเบ‡เปเบฅเปˆเบ™ kill -0 "${pid}" 2> /dev/null && return 1

fi

fi

เป€เบฎเบฑเบ”

fi


# เบเบงเบ”เป€เบšเบดเปˆเบ‡เปเบฅเบฐเป€เบญเบปเบฒเป„เบŸเบฅเปŒ PID เป€เบเบปเปˆเบฒเบญเบญเบ. เบ–เป‰เบฒ [ -z "${pidfile}" ]; เปเบฅเป‰เบง

# เบŠเบญเบเบซเบฒเบŠเบทเปˆเบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡ $program

prefix=`echo "${program}" | sed 's/[^/]*$//'` progname=`echo "${program}" | sed "s@${prefix}@@"`


เบ–เป‰เบฒ [ -e "/var/run/${progname}.pid" ]; เปเบฅเป‰เบง

rm -f "/var/run/${progname}.pid" 2> /dev/null

fi

เบญเบทเปˆเบ™

เบ–เป‰เบฒ [ -e "${pidfile}" ]; เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ rm -f "${pidfile}" 2> /dev/null; เบŸเบต

fi


# เบชเปเบฒเบฅเบฑเบšเบชเบฑเบ™เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ„เบฒเบ”เบซเบงเบฑเบ‡เบงเปˆเบฒเป‚เบ„เบ‡เบเบฒเบ™เบˆเบฐเบญเบญเบ, เบžเบฝเบ‡เปเบ•เปˆ

# เปƒเบซเป‰ kill เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบกเบฑเบ™, เปเบฅเบฐเบ›เบฐเป€เบกเบตเบ™เบ„เบทเบ™เบ„เปˆเบฒเบ‚เบญเบ‡ kill


else# check_sig_type - เบชเบฑเบ™เบเบฒเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบขเบธเบ”เป‚เบ„เบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบš pid เปƒเบ™ ${pidlist}; เป€เบฎเบฑเบ”

เบ‚เป‰เบฒ "${signal}" "${pid}"

เบฎเบนเบšเบžเบฒเบšเป€เบฅเบฑเบเบ™เป‰เบญเบ


เบ–เป‰เบฒ [ "${?}" -ne "0" ]; เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบเบฑเบšเบ„เบทเบ™ 1; เบŸเบต

เป€เบฎเบฑเบ”

fi

}


################################################ ##############################

# pidofproc() #

# เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰: pidofproc [-p pidfile] pathname #

# #

# เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡: เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบชเบปเปˆเบ‡เบ„เบทเบ™เบซเบ™เบถเปˆเบ‡เบซเบผเบทเบซเบผเบฒเบเบเบงเปˆเบฒ pid เบชเปเบฒเบฅเบฑเบš daemon เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ #

# #

# เบงเบฑเบ”เบชเบฐเบ”เบธเบ›เป‰เบญเบ™: -p pidfile, เปƒเบŠเป‰ pidfile เบ—เบตเปˆเบฅเบฐเบšเบธเปเบ—เบ™ pidof #

# เบŠเบทเปˆเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡, เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบซเบฒเป‚เบ›เบฃเปเบเบฃเบกเบ—เบตเปˆเบฅเบฐเบšเบธ #

# #

# เบ„เปˆเบฒเบเบฑเบšเบ„เบทเบ™ (เบ•เบฒเบกเบเบณเบ™เบปเบ”เป‚เบ”เบเบฅเบฐเบซเบฑเบ”เบชเบฐเบ–เบฒเบ™เบฐ LSB): #

# 0 - เบ„เบงเบฒเบกเบชเบณเป€เบฅเบฑเบ” (PIDs to stdout) #

# 1 - เป‚เบ›เบฃเปเบเบฃเบกเบ•เบฒเบเปเบฅเป‰เบง, เป„เบŸเบฅเปŒ PID เบเบฑเบ‡เบกเบตเบขเบนเปˆ (เบœเบปเบ™เบœเบฐเบฅเบดเบ” PID เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญ) #

# 3 - เป‚เบ›เบฃเปเบเบฃเบกเบšเปเปˆเปเบฅเปˆเบ™ (เบšเปเปˆเบกเบตเบœเบปเบ™เบœเบฐเบฅเบดเบ”) #

################################################ ##############################

pidofproc()

{

local pidfile เป‚เบ›เบฃเปเบเบฃเบกเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ local prefix local progname local pidlist local lpids

เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบญเบญเบเบˆเบฒเบเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ = "0"


# เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡; เป€เบฎเบฑเบ”

เบเปเบฅเบฐเบ™เบต "${1}" เปƒเบ™


-p)


pidfile="${2}" shift 2

;;


*)

program="${1}"

เบ–เป‰เบฒ [ -n "${2}" ]; เปเบฅเป‰เบง

# เป‚เบ•เป‰เบ–เบฝเบ‡เบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›

# เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบ–เบฒเบ™เบฐเบžเบฒเบš, เบเบฑเบšเบ„เบทเบ™เบšเปเปˆเบฎเบนเป‰เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™ 4

เบญเบทเปˆเบ™

เบžเบฑเบเบœเปˆเบญเบ™


เป€เบฎเบฑเบ”

fi

;;

เบงเปˆเบฒ C


# เบ–เป‰เบฒเป„เบŸเบฅเปŒ PID เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบฅเบฐเบšเบธ, เบžเบฐเบเบฒเบเบฒเบกเปเบฅเบฐเบŠเบญเบเบซเบฒเบซเบ™เบถเปˆเบ‡. เบ–เป‰เบฒ [ -z "${pidfile}" ]; เปเบฅเป‰เบง

# เป€เบญเบปเบฒเบŠเบทเปˆเบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™

prefix=`echo "${program}" | sed 's/[^/]*$//'` เบ–เป‰เบฒ [ -z "${prefix}" ]; เปเบฅเป‰เบง

เบฎเบนเบšเบžเบฒเบšเป€เบฅเบฑเบเบ™เป‰เบญเบ


progname="${program}" เบญเบทเปˆเบ™

progname=`echo "${program}" | sed "s@${prefix}@@"`

fi


# เบ–เป‰เบฒเป„เบŸเบฅเปŒ PID เบกเบตเบŠเบทเปˆเบ™เบฑเป‰เบ™, เปƒเบซเป‰เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบกเบฑเบ™. เบ–เป‰เบฒ [ -e "/var/run/${progname}.pid" ]; เปเบฅเป‰เบง

pidfile="/var/run/${progname}.pid"

fi

fi


# เบ–เป‰เบฒเป„เบŸเบฅเปŒ PID เบ–เบทเบเบ•เบฑเป‰เบ‡เปเบฅเบฐเบกเบตเบขเบนเปˆ, เปƒเบซเป‰เปƒเบŠเป‰เบกเบฑเบ™.

เบ–เป‰เบฒ [ -n "${pidfile}" -a -e "${pidfile}" ]; เปเบฅเป‰เบง


# เปƒเบŠเป‰เบ„เปˆเบฒเปƒเบ™เปเบ–เบงเบ—เบณเบญเบดเบ”เบ‚เบญเบ‡ pidfile pidlist=`/bin/head -n1 "${pidfile}"`

# เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เป€เบ›เบฑเบ™ 'sed 1q' เป€เบžเบทเปˆเบญ repalce 'head -n1'

# เบ„เบงเบ™ LFS เบเป‰เบฒเบ /bin/head เป„เบ› /usr/bin/head

เบญเบทเปˆเบ™

# เปƒเบŠเป‰ pidof

pidlist=`pidof "${program}"`

fi


# เบ„เบดเบ”เบญเบญเบเบงเปˆเบฒ PIDs เบ—เบตเปˆเบกเบตเบฅเบฒเบเบŠเบทเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆ. เบชเปเบฒเบฅเบฑเบš pid เปƒเบ™ ${pidlist}; เป€เบฎเบฑเบ”

เบ‚เป‰เบฒ -0 ${pid} 2> /dev/null


เบ–เป‰เบฒ ["${?}" -eq "0" ]; เบˆเบฒเบเบ™เบฑเป‰เบ™ lpids="${lpids}${pid}"

เบญเบทเปˆเบ™

exitstatus="1"

fi

เป€เบฎเบฑเบ”


เบ–เป‰เบฒ [-z "${lpids}" -a ! -f "${pidfile}" ]; เปเบฅเป‰เบงเบเบฑเบšเบ„เบทเบ™ 3

เบญเบทเปˆเบ™

เบชเบฝเบ‡เบชเบฐเบ—เป‰เบญเบ™ "${lpids}"

เบเบฑเบšเบ„เบทเบ™ "${exitstatus}"

fi

}


################################################ ##############################

# statusproc() #

# เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰: statusproc [-p pidfile] pathname #

# #

# เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡: เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบžเบดเบกเบชเบฐเบ–เบฒเบ™เบฐเบ‚เบญเบ‡ daemon เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเป€เบžเบทเปˆเบญ stdout #

# #

# เบงเบฑเบ”เบชเบฐเบ”เบธเบ›เป‰เบญเบ™: -p pidfile, เปƒเบŠเป‰ pidfile เบ—เบตเปˆเบฅเบฐเบšเบธเปเบ—เบ™ pidof #

# เบŠเบทเปˆเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡, เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบซเบฒเป‚เบ›เบฃเปเบเบฃเบกเบ—เบตเปˆเบฅเบฐเบšเบธ #

# #

# เบ„เปˆเบฒเบเบฑเบšเบ„เบทเบ™: #

# 0 - เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบžเบดเบก #

#1 - เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบœเบดเบ”เบžเบฒเบ”. daemon เบ—เบตเปˆเบˆเบฐเบเบงเบ”เบชเบญเบšเบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰. #

################################################ ##############################

statusproc()

{

เบฎเบนเบšเบžเบฒเบšเป€เบฅเบฑเบเบ™เป‰เบญเบ


pidfile เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ pidlist เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™


เบ–เป‰เบฒ [ "${#}" = "0" ]; เปเบฅเป‰เบง

echo "เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰: statusproc [-p pidfle] {program}" เบญเบญเบ 1

fi


# เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡; เป€เบฎเบฑเบ”

เบเปเบฅเบฐเบ™เบต "${1}" เปƒเบ™


-p)


pidfile="${2}" shift 2

;;


*)

เบ–เป‰เบฒ [ -n "${2}" ]; เปเบฅเป‰เบง

echo "เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›" เบเบฑเบšเบ„เบทเบ™ 1

เบญเบทเปˆเบ™

เบžเบฑเบเบœเปˆเบญเบ™


เป€เบฎเบฑเบ”

fi

;;

เบงเปˆเบฒ C


เบ–เป‰เบฒ [ -n "${pidfile}" ]; เบˆเบฒเบเบ™เบฑเป‰เบ™ pidlist=`pidofproc -p "${pidfile}" $@`

เบญเบทเปˆเบ™

pidlist=`pidofproc $@`

fi


# เบ•เบฑเบ”เบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡เบ•เปเปˆเบ—เป‰เบฒเบ

pidlist=`echo "${pidlist}" | sed -r 's/ +$//'` base="${1##*/}"

เบ–เป‰เบฒ [ -n "${pidlist}" ]; เปเบฅเป‰เบง

/bin/echo -e "${INFO}${base} เบเบณเบฅเบฑเบ‡เปเบฅเปˆเบ™เบ”เป‰เบงเบ Process" \ "ID(s) ${pidlist}.${NORMAL}"

เบญเบทเปˆเบ™

เบ–เป‰เบฒ [ -n "${base}" -a -e "/var/run/${base}.pid" ]; เปเบฅเป‰เบง

/bin/echo -e "${WARNING}${1} เบšเปเปˆเป„เบ”เป‰เปเบฅเปˆเบ™เปเบ•เปˆ" \ "/var/run/${base}.pid เบกเบตเบขเบนเปˆ.${NORMAL}"

เบญเบทเปˆเบ™

เบ–เป‰เบฒ [ -n "${pidfile}" -a -e "${pidfile}" ]; เปเบฅเป‰เบง

/bin/echo -e "${WARNING}${1} เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เบงเบฝเบ" \ "เปเบ•เปˆเบงเปˆเบฒ ${pidfile} เบกเบตเบขเบนเปˆ.${NORMAL}"

เบญเบทเปˆเบ™

/bin/echo -e "${INFO}${1} เบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบ.${NORMAL}"

fi

fi

fi

}

เบฎเบนเบšเบžเบฒเบšเป€เบฅเบฑเบเบ™เป‰เบญเบ


################################################ ##############################

# timespec() #

# #

# เบˆเบธเบ”โ€‹เบ›เบฐโ€‹เบชเบปเบ‡โ€‹: เป€เบ›เบฑเบ™โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบญเบธโ€‹เบ›เบฐโ€‹เบเบญเบ™โ€‹เบžเบฒเบโ€‹เปƒเบ™โ€‹เป€เบžเบทเปˆเบญโ€‹เบˆเบฑเบ”โ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เป€เบงโ€‹เบฅเบฒ #

# เป„เบŸเบฅเปŒเบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบšเบนเบ”. เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เบปเบงเปเบ› STAMP. #

# #

# เบ„เปˆเบฒเบ•เบญเบšเปเบ—เบ™: เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰ #

################################################ ##############################

timespec()

{

STAMP="$(echo `date +"%b %d %T %:z"` `hostname`) " เบเบฑเบšเบ„เบทเบ™ 0

}


################################################ ##############################

# log_success_msg() #

# เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰: log_success_msg ["เบ‚เปเป‰เบ„เบงเบฒเบก"] #

# #

# เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡: เบžเบดเบกเบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเบ–เบฒเบ™เบฐเบ—เบตเปˆเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เปƒเบชเปˆเบซเบ™เป‰เบฒเบˆเปเปเบฅเบฐ #

# เป„เบŸเบฅเปŒเบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบšเบนเบ”. #

# #

# เบงเบฑเบ”เบชเบฐเบ”เบธเบ›เป‰เบญเบ™: $@ - เบ‚เปเป‰เบ„เบงเบฒเบก #

# #

# เบ„เปˆเบฒเบเบฑเบšเบ„เบทเบ™: เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰ #

################################################ ##############################

log_success_msg()

{

/bin/echo -n -e "${BMPREFIX}${@}"

/bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}"


# เบ–เบญเบ”เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบžเบดเบกเป„เบ”เป‰เบˆเบฒเบเป„เบŸเบฅเปŒเบšเบฑเบ™เบ—เบถเบ logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`


timepec

/bin/echo -e "${STAMP} ${logmessage} OK" >> ${BOOTLOG}


เบเบฑเบšเบ„เบทเบ™ 0

}


log_success_msg2()

{

/bin/echo -n -e "${BMPREFIX}${@}"

/bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}" echo "OK" >> ${BOOTLOG}

เบเบฑเบšเบ„เบทเบ™ 0

}


################################################ ##############################

# log_failure_msg() #

# เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰: log_failure_msg ["เบ‚เปเป‰เบ„เบงเบฒเบก"] #

# #

# เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡: เบžเบดเบกเบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเบ–เบฒเบ™เบฐเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบงเปƒเบชเปˆเปœเป‰เบฒเบˆเป เปเบฅเบฐ #

# เป„เบŸเบฅเปŒเบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบšเบนเบ”. #

# #

# เบงเบฑเบ”เบชเบฐเบ”เบธเบ›เป‰เบญเบ™: $@ - เบ‚เปเป‰เบ„เบงเบฒเบก #

เบฎเบนเบšเบžเบฒเบšเป€เบฅเบฑเบเบ™เป‰เบญเบ


# #

# เบ„เปˆเบฒเบเบฑเบšเบ„เบทเบ™: เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰ #

################################################ ##############################

log_failure_msg()

{

/bin/echo -n -e "${BMPREFIX}${@}"

/bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}"

# เบ–เบญเบ”เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบžเบดเบกเป„เบ”เป‰เบˆเบฒเบ log file timespec

logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`

/bin/echo -e "${STAMP} ${logmessage} FAIL" >> ${BOOTLOG}


เบเบฑเบšเบ„เบทเบ™ 0

}


log_failure_msg2()

{

/bin/echo -n -e "${BMPREFIX}${@}"

/bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}" echo "FAIL" >> ${BOOTLOG}

เบเบฑเบšเบ„เบทเบ™ 0

}


################################################ ##############################

# log_warning_msg() #

# เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰: log_warning_msg ["เบ‚เปเป‰เบ„เบงเบฒเบก"] #

# #

# เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡: เบžเบดเบกเบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเบ–เบฒเบ™เบฐเป€เบ•เบทเบญเบ™เปƒเบชเปˆเปœเป‰เบฒเบˆเป เปเบฅเบฐ #

# เป„เบŸเบฅเปŒเบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบšเบนเบ”. #

# #

# เบ„เปˆเบฒเบเบฑเบšเบ„เบทเบ™: เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰ #

################################################ ##############################

log_warning_msg()

{

/bin/echo -n -e "${BMPREFIX}${@}"

/bin/echo -e "${CURS_ZERO}${WARNING_PREFIX}${SET_COL}${WARNING_SUFFIX}"


# เบ–เบญเบ”เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบžเบดเบกเป„เบ”เป‰เบˆเบฒเบเป„เบŸเบฅเปŒเบšเบฑเบ™เบ—เบถเบ logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` timespec

/bin/echo -e "${STAMP} ${logmessage} WARN" >> ${BOOTLOG}


เบเบฑเบšเบ„เบทเบ™ 0

}


log_skip_msg()

{

/bin/echo -n -e "${BMPREFIX}${@}"

/bin/echo -e "${CURS_ZERO}${SKIP_PREFIX}${SET_COL}${SKIP_SUFFIX}"


# เบ–เบญเบ”เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบžเบดเบกเป„เบ”เป‰เบˆเบฒเบเป„เบŸเบฅเปŒเบšเบฑเบ™เบ—เบถเบ logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`

/bin/echo "เบ‚เป‰เบฒเบก" >> ${BOOTLOG}

เบฎเบนเบšเบžเบฒเบšเป€เบฅเบฑเบเบ™เป‰เบญเบ


เบเบฑเบšเบ„เบทเบ™ 0

}


################################################ ##############################

# log_info_msg() #

# เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰: เบ‚เปเป‰เบ„เบงเบฒเบก log_info_msg #

# #

# เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡: เบžเบดเบกเบ‚เปเป‰เบ„เบงเบฒเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเบซเบ™เป‰เบฒเบˆเปเปเบฅเบฐ #

# เป„เบŸเบฅเปŒเบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบšเบนเบ”. เบšเปเปˆเป„เบ”เป‰เบžเบดเบกเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เปเบ–เบงเปƒเปเปˆเบ•เปเปˆเบ—เป‰เบฒเบ. #

# #

# เบ„เปˆเบฒเบเบฑเบšเบ„เบทเบ™: เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰ #

################################################ ##############################

log_info_msg()

{

/bin/echo -n -e "${BMPREFIX}${@}"


# เบ–เบญเบ”เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบžเบดเบกเป„เบ”เป‰เบˆเบฒเบเป„เบŸเบฅเปŒเบšเบฑเบ™เบ—เบถเบ logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` timespec

/bin/echo -n -e "${STAMP} ${logmessage}" >> ${BOOTLOG}


เบเบฑเบšเบ„เบทเบ™ 0

}


log_info_msg2()

{

/bin/echo -n -e "${@}"


# เบ–เบญเบ”เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบžเบดเบกเป„เบ”เป‰เบˆเบฒเบเป„เบŸเบฅเปŒเบšเบฑเบ™เบ—เบถเบ logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`

/bin/echo -n -e "${logmessage}" >> ${BOOTLOG}


เบเบฑเบšเบ„เบทเบ™ 0

}


################################################ ##############################

# evaluate_retval() #

# เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹: เบเบฒเบ™โ€‹เบ›เบฐโ€‹เป€เบกเบตเบ™โ€‹เบกเบนเบ™โ€‹เบ„เปˆเบฒโ€‹เบเบฑเบšโ€‹เบ„เบทเบ™โ€‹เบกเบฒโ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบžเบดเบกโ€‹เบœเบปเบ™โ€‹เบชเปเบฒโ€‹เป€เบฅเบฑเบ”โ€‹เบซเบผเบทโ€‹เบ„เบงเบฒเบกโ€‹เบฅเบปเป‰เบกโ€‹เป€เบซเบผเบงโ€‹เบ•เบฒเบกโ€‹เบ„เบงเบฒเบกโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบก #

# #

# เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡: เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เบขเบธเบ”เบ‚เปเป‰เบ„เบงเบฒเบกเบ‚เปเป‰เบกเบนเบ™ #

# #

# เบ„เปˆเบฒเบเบฑเบšเบ„เบทเบ™: เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰ #

################################################ ##############################

evaluate_retval()

{

local error_value="${?}"


เบ–เป‰เบฒ [ ${error_value} = 0 ]; เบˆเบฒเบเบ™เบฑเป‰เบ™ log_success_msg2

เบญเบทเปˆเบ™

log_failure_msg2

fi

}


################################################ ##############################

# check_signal() #

เบฎเบนเบšเบžเบฒเบšเป€เบฅเบฑเบเบ™เป‰เบญเบ


# เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰: check_signal [ -{signal} | {signal} ] #

# #

# เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡: เบเบงเบ”เป€เบšเบดเปˆเบ‡เบชเบฑเบ™เบเบฒเบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบฎเปˆเบฒเบ‡ LSB เปƒเบ”เป†, #

# เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเบงเบ”เป€เบšเบดเปˆเบ‡เบชเบฑเบ™เบเบฒเบ™เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบงเปˆเบฒ #

# เบชเบฑเบ™เบเบฒเบ™เบ—เบตเปˆเป€เบฅเบทเบญเบเบ™เบฑเป‰เบ™เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ•เป‰เปเบเป‰เบ‡เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบญเบทเปˆเบ™เป†. #

# #

# เบงเบฑเบ”เบชเบฐเบ”เบธเบ›เป‰เบญเบ™: เบเบญเบกเบฎเบฑเบšเบ„เปˆเบฒเบชเบฐเบ•เบฃเบดเบ‡เบ”เบฝเบงเปƒเบ™เบฎเบนเบšเปเบšเบš เบซเบผเบท -{signal} เบซเบผเบท {signal} #

# #

# เบ„เปˆเบฒเบเบฑเบšเบ„เบทเบ™: #

# 0 - เบ„เบงเบฒเบกเบชเปเบฒเป€เบฅเบฑเบ” (เบชเบฑเบ™เบเบฒเบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡ #

#1 - เบชเบฑเบ™เบเบฒเบ™เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡ #

################################################ ##############################

check_signal()

{

valsig เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™


# เป€เบžเบตเปˆเบกเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฑเบ™เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡

valsig="-ALRM -HUP -INT -KILL -PIPE -POLL -PROF -TERM -USR1 -USR2" valsig="${valsig} -VTALRM -STKFLT -PWR -WINCH -CHLD -URG -TSTP -TTIN" valsig= "${valsig} -TTOU -STOP -CONT -ABRT -FPE -ILL -QUIT -SEGV -TRAP" valsig="${valsig} -SYS -EMT -BUS -XCPU -XFSZ -0 -1 -2 -3 - 4 -5 -6 -8 -9"

valsig="${valsig} -11 -13 -14 -15"

echo "${valsig}" | grep -- " ${1} " > /dev/null เบ–เป‰เบฒ [ "${?}" -eq "0" ]; เปเบฅเป‰เบง

เบเบฑเบšเบ„เบทเบ™ 0

เบญเบทเปˆเบ™

เบเบฑเบšเบ„เบทเบ™ 1

fi

}


################################################ ##############################

# check_sig_type() #

# เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰: check_signal [ -{signal} | {signal} ] #

# #

# เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡: เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบชเบฑเบ™เบเบฒเบ™เปเบกเปˆเบ™เบชเบฑเบ™เบเบฒเบ™เบขเบธเบ”เป‚เบ„เบ‡เบเบฒเบ™เบซเบผเบทเบชเบฑเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก #

# เบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบฎเปˆเบฒเบ‡ LSB เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡ #

# เบเบงเบ”เป€เบšเบดเปˆเบ‡เบชเบฑเบ™เบเบฒเบ™เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ—เบตเปˆเบˆเบฐเบชเบดเป‰เบ™เบชเบธเบ” #

# เป‚เบ„เบ‡เบเบฒเบ™เบซเบผเบทเบžเบฝเบ‡เปเบ•เปˆเบ„เบงเบšเบ„เบธเบกเบกเบฑเบ™. #

# #

# เบงเบฑเบ”เบชเบฐเบ”เบธเบ›เป‰เบญเบ™: เบเบญเบกเบฎเบฑเบšเบ„เปˆเบฒเบชเบฐเบ•เบฃเบดเบ‡เบ”เบฝเบงเปƒเบ™เบฎเบนเบšเปเบšเบš เบซเบผเบท -{signal} เบซเบผเบท {signal} #

# #

# เบ„เปˆเบฒเบเบฑเบšเบ„เบทเบ™: #

# 0 - เบชเบฑเบ™เบเบฒเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบขเบธเบ”เป‚เบ„เบ‡เบเบฒเบ™ #

# 1 - เบชเบฑเบ™เบเบฒเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเป‚เบ„เบ‡เบเบฒเบ™ #

################################################ ##############################

check_sig_type()

{

valsig เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™


# เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบชเบฑเบ™เบเบฒเบ™เบเบฒเบ™เบขเบธเบ”เป€เบŠเบปเบฒ (เบˆเปเบฒเบเบฑเบ”เบเบฑเบšเบฅเบฒเบเบเบฒเบ™เบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›) valsig="-ALRM -INT -KILL -TERM -PWR -STOP -ABRT -QUIT -2 -3 -6 -9 -14 -15"


echo "${valsig}" | grep -- " ${1} " > /dev/null เบ–เป‰เบฒ [ "${?}" -eq "0" ]; เปเบฅเป‰เบง



เบเบฑเบšเบ„เบทเบ™ 0

เบญเบทเปˆเบ™

เบเบฑเบšเบ„เบทเบ™ 1

fi

}


################################################ ##############################

# wait_for_user() #

# #

# เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡: เบฅเปเบ–เป‰เบฒเบœเบนเป‰เปƒเบŠเป‰เบ•เบญเบšเบ–เป‰เบฒเบšเปเปˆเปเบกเปˆเบ™เบฅเบฐเบšเบปเบšเบซเบปเบง #

# #

################################################ ##############################

wait_for_user()

{

# เบฅเปเบ–เป‰เบฒเบœเบนเป‰เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™

[ "${HEADLESS=0}" = "0" ] && เบญเปˆเบฒเบ™ ENTER

เบเบฑเบšเบ„เบทเบ™ 0

}


################################################ ##############################

# is_true() #

# #

# เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡: เบ›เบฐเป‚เบซเบเบ”เป€เบžเบทเปˆเบญเบ—เบปเบ”เบชเบญเบšเบงเปˆเบฒเบ•เบปเบงเปเบ›เป€เบ›เบฑเบ™เบˆเบดเบ‡ | เปเบกเปˆเบ™เปเบฅเป‰เบง | 1 #

# #

################################################ ##############################

is_true()

{

[ "$1" = "1" ] || [ "$1" = "เปเบกเปˆเบ™" ] || [ "$1" = "เบˆเบดเบ‡" ] || [ "$1" = "y" ] || [ "$1" = "t" ]

}


# End /lib/lsb/init-functions

เบเบฑเบšเบ„เบทเบ™ 0

เบญเบทเปˆเบ™

เบเบฑเบšเบ„เบทเบ™ 1

fi

}


################################################ ##############################

# wait_for_user() #

# #

# เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡: เบฅเปเบ–เป‰เบฒเบœเบนเป‰เปƒเบŠเป‰เบ•เบญเบšเบ–เป‰เบฒเบšเปเปˆเปเบกเปˆเบ™เบฅเบฐเบšเบปเบšเบซเบปเบง #

# #

################################################ ##############################

wait_for_user()

{

# เบฅเปเบ–เป‰เบฒเบœเบนเป‰เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™

[ "${HEADLESS=0}" = "0" ] && เบญเปˆเบฒเบ™ ENTER

เบเบฑเบšเบ„เบทเบ™ 0

}


################################################ ##############################

# is_true() #

# #

# เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡: เบ›เบฐเป‚เบซเบเบ”เป€เบžเบทเปˆเบญเบ—เบปเบ”เบชเบญเบšเบงเปˆเบฒเบ•เบปเบงเปเบ›เป€เบ›เบฑเบ™เบˆเบดเบ‡ | เปเบกเปˆเบ™เปเบฅเป‰เบง | 1 #

# #

################################################ ##############################

is_true()

{

[ "$1" = "1" ] || [ "$1" = "เปเบกเปˆเบ™" ] || [ "$1" = "เบˆเบดเบ‡" ] || [ "$1" = "y" ] || [ "$1" = "t" ]

}


# End /lib/lsb/init-functions


เบฎเบนเบšเบžเบฒเบšเป€เบฅเบฑเบเบ™เป‰เบญเบ

เบฎเบนเบšเบžเบฒเบšเป€เบฅเบฑเบเบ™เป‰เบญเบ

: Gerard Beekmans - [email protected] DJ Lucas - [email protected]

: Bruce Dubbs - [email protected]

: Gerard Beekmans - [email protected] DJ Lucas - [email protected]

: Bruce Dubbs - [email protected]

: LFS 7.0

: LFS 7.0

mountvirtfs

mountvirtfs

S

S

OS Cloud Computing เบเบญเบ”เบ™เบดเบเบปเบกเบขเบนเปˆ OnWorks: