OnWorks Linux và Windows Online WorkStations

Logo

Lưu trữ trực tuyến miễn phí cho máy trạm

<Trước | Nội dung | Tiếp theo>

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


# / Bin / sh

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

#

# Begin / lib / lsb / init-funtions

#

# Mô tả: Chạy Chức năng Kiểm soát Mức độ

#

# / Bin / sh

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

#

# Begin / lib / lsb / init-funtions

#

# Mô tả: Chạy Chức năng Kiểm soát Mức độ

#


# Tác giả

#

# Cập nhật

#

# Phiên bản

#

# Ghi chú

#

#

#

#

# Tác giả

#

# Cập nhật

#

# Phiên bản

#

# Ghi chú

#

#

#

#


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


## Thiết lập môi trường

# Thiết lập giá trị mặc định cho môi trường umask 022

xuất PATH = "/ bin: / usr / bin: / sbin: / usr / sbin"


## Đặt lệnh màu, được sử dụng qua tiếng vọng

# Vui lòng tham khảo `man console_codes để biết thêm thông tin

# trong phần "ECMA-48 Set Graphics Rendition"

#

# Cảnh báo: khi chuyển từ phông chữ 8bit sang 9bit,

# bảng điều khiển linux sẽ diễn giải lại chữ in đậm (1;) thành

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


## Thiết lập môi trường

# Thiết lập giá trị mặc định cho môi trường umask 022

xuất PATH = "/ bin: / usr / bin: / sbin: / usr / sbin"


## Đặt lệnh màu, được sử dụng qua tiếng vọng

# Vui lòng tham khảo `man console_codes để biết thêm thông tin

# trong phần "ECMA-48 Set Graphics Rendition"

#

# Cảnh báo: khi chuyển từ phông chữ 8bit sang 9bit,

# bảng điều khiển linux sẽ diễn giải lại chữ in đậm (1;) thành

hình ảnh


# 256 glyphs hàng đầu của phông chữ 9bit. Điều này không

# không ảnh hưởng đến bảng điều khiển bộ đệm khung


NORMAL = "\\ 033 [0; 39m" # Bảng điều khiển tiêu chuẩn màu xám SUCCESS = "\\ 033 [1; 32m" # Thành công là màu xanh lá cây WARNING = "\\ 033 [1; 33 phút" # Cảnh báo màu vàng FAILURE = "\\ 033 [1; 31m "# Lỗi có màu đỏ INFO =" \\ 033 [1; 36m "# Thông tin có màu lục lam nhạt BRACKET =" \\ 033 [1; 34m "# Dấu ngoặc màu xanh lam


# Sử dụng tiền tố màu BMPREFIX = ""

SUCCESS_PREFIX = "$ {SUCCESS} * $ {NORMAL}" FAILURE_PREFIX = "$ {FAILURE} ***** $ {NORMAL}" WARNING_PREFIX = "$ {WARNING} *** $ {NORMAL}" SKIP_PREFIX = "$ { THÔNG TIN} S $ {NORMAL} "


SUCCESS_SUFFIX = "$ {BRACKET} [$ {SUCCESS} OK $ {BRACKET}] $ {NORMAL}" FAILURE_SUFFIX = "$ {BRACKET} [$ {FAILURE} FAIL $ {BRACKET}] $ {NORMAL}" WARNING_SUFFIX = "$ {BRACKET} [$ {WARNING} WARN $ {BRACKET}] $ {NORMAL} "SKIP_SUFFIX =" $ {BRACKET} [$ {INFO} BỎ QUA $ {BRACKET}] $ {NORMAL} "


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


# Đặt bất kỳ biến môi trường nào do người dùng chỉ định, ví dụ HEADLESS [-r /etc/sysconfig/rc.site] &&. /etc/sysconfig/rc.site


## Kích thước màn hình

# Tìm kích thước màn hình hiện tại if [-z "$ {COLUMNS}"]; sau đó

COLUMNS = $ (kích thước kiểu) COLUMNS = $ {COLUMNS ## *}

fi


# Khi sử dụng kết nối từ xa, chẳng hạn như cổng nối tiếp, stty size trả về 0 if ["$ {COLUMNS}" = "0"]; sau đó

COLUMNS = 80

fi


## Các phép đo cho thông báo kết quả định vị COL = $ (($ {COLUMNS} - 8))

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


## Đặt Lệnh Vị trí Con trỏ, được sử dụng qua echo SET_COL = "\\ 033 [$ {COL} G" # tại $ COL char SET_WCOL = "\\ 033 [$ {WCOL} G" # tại $ WCOL char CURS_UP = "\\ 033 [1A \\ 033 [0G" # Lên một dòng, ở char thứ 0 CURS_ZERO = "\\ 033 [0G"


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

# start_daemon () #

# Cách sử dụng: start_daemon [-f] [-n nicelevel] [-p pidfile] tên đường dẫn [args ...] #

# #

# Mục đích: Thao tác này chạy chương trình được chỉ định dưới dạng daemon #

# #

hình ảnh


# Inputs: -f: (force) chạy chương trình ngay cả khi nó đang chạy. #

# -n nicelevel: chỉ định mức đẹp. Xem 'người đàn ông tốt đẹp (1)'. #

# -p pidfile: sử dụng tệp được chỉ định để xác định PID. #

# pathname: đường dẫn đầy đủ đến chương trình được chỉ định #

# args: đối số bổ sung được truyền vào chương trình (tên đường dẫn) #

# #

# Giá trị trả về (như được xác định bởi mã thoát LSB): #

# 0 - chương trình đang chạy hoặc dịch vụ ổn #

# 1 - lỗi chung chung hoặc không xác định #

# 2 - (các) đối số không hợp lệ hoặc quá mức #

# 5 - chương trình chưa được cài đặt #

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

start_daemon ()

{

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


# Xử lý đối số trong khi đúng

do

trường hợp "$ {1}" trong


-NS)


force = "1" ca 1

;;


-N)


nice = "$ {2}" ca 2

;;


-P)


pidfile = "$ {2}" ca 2

;;


- *)


trả lại 2

;;



thực hiện

*)


nó C


chương trình = "$ {1}" ngắt

;;


# Kiểm tra chương trình hợp lệ

nếu như [ ! -e "$ {program}"]; sau đó trả về 5; fi


# Hành hình

if [-z "$ {force}"]; sau đó

if [-z "$ {pidfile}"]; sau đó

hình ảnh


# Xác định pid bằng cách khám phá pidlist = `pidofproc" $ {1} "` retval = "$ {?}"

khác

# Tệp PID chứa các PID cần thiết

# Lưu ý rằng theo yêu cầu của LSB, đường dẫn phải được cấp cho pidofproc,

# tuy nhiên, nó không được triển khai hoặc tiêu chuẩn hiện tại sử dụng. pidlist = `pidofproc -p" $ {pidfile} "" $ {1} "`

retval = "$ {?}"

fi


# CHỈ Trả lại một giá trị

# Đó là khả năng đáp ứng của init script (hoặc các chức năng của phân phối)

# để ghi lại tin nhắn! trường hợp "$ {retval}" trong


0)

# Chương trình đã chạy chính xác, đây là

# khởi đầu thành công. trả về 0

;;


1)

# Chương trình không chạy nhưng tồn tại một tệp pid không hợp lệ

# xóa tệp pid và tiếp tục rm -f "$ {pidfile}"

;;


3)

# Chương trình không chạy và không có pidfile nào tồn tại

# không làm gì ở đây, hãy để start_deamon tiếp tục.

;;


*)


nó C

fi


# Những người khác được trả về bởi các giá trị trạng thái sẽ không được giải thích

# và trả về dưới dạng lỗi không xác định. trả lại 1

;;


# Hãy bắt đầu!

tốt đẹp -n "$ {nice}" "$ {@}"

}


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

# killproc () #

# Cách sử dụng: tên đường dẫn killproc [-p pidfile] [signal] #

# #

# Mục đích: Gửi tín hiệu điều khiển đến các quy trình đang chạy #

# #

# Đầu vào: -p pidfile, sử dụng pidfile # được chỉ định

# tên đường dẫn, tên đường dẫn đến chương trình được chỉ định #

# signal, gửi tín hiệu này tới tên đường dẫn #

# #

# Giá trị trả về (như được xác định bởi mã thoát LSB): #

# 0 - chương trình (tên đường dẫn) đã dừng / đã dừng hoặc #

hình ảnh



#

chương trình đang chạy đã được gửi chỉ định

tín hiệu và

dừng lại

#

#

thành công

#

#

1

- lỗi chung chung hoặc không xác định

#

#

2

- (các) đối số không hợp lệ hoặc quá mức

#

#

5

- chương trình chưa được cài đặt

#

#

7

- chương trình không chạy và một tín hiệu

cung cấp

#

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

killproc ()

{

local pidfile chương trình cục bộ tiền tố cục bộ local progname

tín hiệu cục bộ = "- TERM" cục bộ dự phòng = "- KILL" cục bộ

địa phương pidlist địa phương retval địa phương pid

local delay = "30" local piddead local dtime


# Xử lý các đối số trong khi đúng; làm

trường hợp "$ {1}" trong

-P)

pidfile = "$ {2}" ca 2

;;


*)

chương trình = "$ {1}"

if [-n "$ {2}"]; sau đó signal = "$ {2}" dự phòng = ""

khác

nosig = 1

fi


# Lỗi về đối số bổ sung if [-n "$ {3}"]; sau đó

trả lại 2

khác

phá vỡ


thực hiện

fi

;;

nó C


# Kiểm tra chương trình hợp lệ

nếu như [ ! -e "$ {program}"]; sau đó trả về 5; fi


# Kiểm tra tín hiệu hợp lệ check_signal "$ {signal}"

if ["$ {?}" -ne "0"]; sau đó trả về 2; fi

hình ảnh


# Nhận danh sách hồ sơ dự thầu

if [-z "$ {pidfile}"]; sau đó

# xác định pid bằng cách khám phá pidlist = `pidofproc" $ {1} "` retval = "$ {?}"

khác

# Tệp PID chứa các PID cần thiết

# Lưu ý rằng theo yêu cầu của LSB, đường dẫn phải được cấp cho pidofproc,

# tuy nhiên, nó không được triển khai hoặc tiêu chuẩn hiện tại sử dụng. pidlist = `pidofproc -p" $ {pidfile} "" $ {1} "`

retval = "$ {?}"

fi


# CHỈ Trả lại một giá trị

# Đó là khả năng đáp ứng của init script (hoặc các chức năng của phân phối)

# để ghi lại tin nhắn! trường hợp "$ {retval}" trong


0)

# Chương trình đang chạy chính xác

# Không làm gì ở đây, hãy để killproc tiếp tục.

;;


1)

# Chương trình không chạy nhưng tồn tại một tệp pid không hợp lệ

# Xóa tệp pid. rm -f "$ {pidfile}"


# Đây chỉ là một thành công nếu không có tín hiệu nào được thông qua. if [-n "$ {nosig}"]; sau đó

trả lại 0

khác

trả lại 7

fi

;;


3)

# Chương trình không chạy và không có pidfile nào tồn tại

# Đây chỉ là một thành công nếu không có tín hiệu nào được thông qua. if [-n "$ {nosig}"]; sau đó

trả lại 0

khác

trả lại 7

fi

;;


*)


nó C


# Những người khác được trả về bởi các giá trị trạng thái sẽ không được giải thích

# và trả về dưới dạng lỗi không xác định. trả lại 1

;;


# Thực hiện các tác vụ khác nhau đối với tín hiệu thoát và tín hiệu điều khiển check_sig_type "$ {signal}"


if ["$ {?}" -eq "0"]; sau đó # Signal được sử dụng để kết thúc chương trình

hình ảnh


# Tài khoản cho pidlist trống (tệp pid vẫn tồn tại và không có

# tín hiệu đã được đưa ra)

if ["$ {pidlist}"! = ""]; sau đó


# Giết danh sách các pid cho pid trong $ {pidlist}; làm

kill -0 "$ {pid}" 2> / dev / null if ["$ {?}" -ne "0"]; sau đó

# Quy trình đã chết, hãy tiếp tục tiếp theo và cho rằng tất cả vẫn tiếp tục tốt

khác

giết "$ {signal}" "$ {pid}" 2> / dev / null


# Chờ tối đa $ {delay} / 10 giây cho "$ {pid}" tới

# kết thúc sau 10 giây


while ["$ {delay}" -ne "0"]; làm

kill -0 "$ {pid}" 2> / dev / null || piddead = "1" if ["$ {piddead}" = "1"]; sau đó phá vỡ; giấc ngủ fi 0.1

trì hoãn = "$ (($ {delay} - 1))"

thực hiện


# Nếu dự phòng được đặt và chương trình vẫn đang chạy, thì

# sử dụng dự phòng

if [-n "$ {fallback}" -a "$ {piddead}"! = "1"]; sau đó giết "$ {fallback}" "$ {pid}" 2> / dev / null

ngủ 1

# Kiểm tra lại và không thành công nếu vẫn chạy kill -0 "$ {pid}" 2> / dev / null && return 1

fi

fi

thực hiện

fi


# Kiểm tra và xóa các tệp PID cũ. if [-z "$ {pidfile}"]; sau đó

# Tìm tên cơ sở của $ chương trình

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


if [-e "/var/run/${progname}.pid"]; sau đó

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

fi

khác

if [-e "$ {pidfile}"]; sau đó rm -f "$ {pidfile}" 2> / dev / null; fi

fi


# Đối với các tín hiệu không mong đợi một chương trình thoát ra, chỉ cần

# hãy để kill thực hiện công việc của nó và đánh giá lợi nhuận của kill cho giá trị


else # check_sig_type - tín hiệu không được sử dụng để kết thúc chương trình cho pid trong $ {pidlist}; làm

giết "$ {signal}" "$ {pid}"

hình ảnh


if ["$ {?}" -ne "0"]; sau đó trả về 1; fi

thực hiện

fi

}


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

# pidofproc () #

# Cách sử dụng: pidofproc [-p pidfile] tên đường dẫn #

# #

# Mục đích: Hàm này trả về một hoặc nhiều pid cho một daemon cụ thể #

# #

# Đầu vào: -p pidfile, sử dụng pidfile được chỉ định thay vì pidof #

# tên đường dẫn, đường dẫn đến chương trình được chỉ định #

# #

# Giá trị trả về (như được xác định bởi mã trạng thái LSB): #

# 0 - Thành công (PID thành stdout) #

# 1 - Chương trình đã chết, tệp PID vẫn tồn tại (đầu ra các PID còn lại) #

# 3 - Chương trình không chạy (không có đầu ra) #

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

pidofproc ()

{

local pidfile local program prefix local progname local pidlist local lpids

local exitstatus = "0"


# Xử lý các đối số trong khi đúng; làm

trường hợp "$ {1}" trong


-P)


pidfile = "$ {2}" ca 2

;;


*)

chương trình = "$ {1}"

if [-n "$ {2}"]; sau đó

# Quá nhiều đối số

# Vì đây là trạng thái, trả về trả về không xác định 4

khác

phá vỡ


thực hiện

fi

;;

nó C


# Nếu tệp PID không được chỉ định, hãy thử và tìm một tệp. if [-z "$ {pidfile}"]; sau đó

# Lấy tên cơ sở của chương trình

prefix = `echo" $ {program} "| sed 's / [^ /] * $ //' `if [-z" $ {prefix} "]; sau đó

hình ảnh


progname = "$ {program}" khác

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

fi


# Nếu tệp PID tồn tại với tên đó, hãy giả sử đó là nó. if [-e "/var/run/${progname}.pid"]; sau đó

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

fi

fi


# Nếu tệp PID được thiết lập và tồn tại, hãy sử dụng nó.

if [-n "$ {pidfile}" -a -e "$ {pidfile}"]; sau đó


# Sử dụng giá trị trong dòng đầu tiên của pidfile pidlist = `/ bin / head -n1" $ {pidfile} "`

# Tùy chọn này có thể được viết là 'sed 1q' để đánh dấu lại 'head -n1'

# nên LFS di chuyển / bin / head thành / usr / bin / head

khác

# Sử dụng pidof

pidlist = `pidof" $ {program} "`

fi


# Tìm hiểu xem tất cả các PID được liệt kê có đang chạy hay không. cho pid trong $ {pidlist}; làm

kill -0 $ {pid} 2> / dev / null


if ["$ {?}" -eq "0"]; thì lpids = "$ {lpids} $ {pid}"

khác

exitstatus = "1"

fi

thực hiện


nếu [-z "$ {lpids}" -a! -f "$ {pidfile}"]; sau đó trả lại 3

khác

echo "$ {lpids}"

trả về "$ {exitstatus}"

fi

}


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

# statusproc () #

# Cách sử dụng: statusproc [-p pidfile] pathname #

# #

# Mục đích: Hàm này in trạng thái của một daemon cụ thể sang stdout #

# #

# Đầu vào: -p pidfile, sử dụng pidfile được chỉ định thay vì pidof #

# tên đường dẫn, đường dẫn đến chương trình được chỉ định #

# #

# Giá trị trả về: #

# 0 - Trạng thái đã in #

# 1 - Lỗi đầu vào. Daemon để kiểm tra không được chỉ định. #

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

statusproc ()

{

hình ảnh


pidfile cục bộ pidlist cục bộ


if ["$ {#}" = "0"]; sau đó

echo "Cách sử dụng: statusproc [-p pidfle] {program}" thoát 1

fi


# Xử lý các đối số trong khi đúng; làm

trường hợp "$ {1}" trong


-P)


pidfile = "$ {2}" ca 2

;;


*)

if [-n "$ {2}"]; sau đó

echo "Quá nhiều đối số" trả về 1

khác

phá vỡ


thực hiện

fi

;;

nó C


if [-n "$ {pidfile}"]; thì pidlist = `pidofproc -p" $ {pidfile} "$ @`

khác

pidlist = `pidofproc $ @ '

fi


# Cắt bỏ các khoảng trống ở cuối

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

if [-n "$ {pidlist}"]; sau đó

/ bin / echo -e "$ {INFO} $ {base} đang chạy với Process" \ "ID (s) $ {pidlist}. $ {NORMAL}"

khác

if [-n "$ {base}" -a -e "/var/run/${base}.pid"]; sau đó

/ bin / echo -e "$ {WARNING} $ {1} không chạy nhưng" \ "/var/run/${base}.pid tồn tại. $ {NORMAL}"

khác

if [-n "$ {pidfile}" -a -e "$ {pidfile}"]; sau đó

/ bin / echo -e "$ {WARNING} $ {1} không chạy" \ "nhưng có tồn tại $ {pidfile}. $ {NORMAL}"

khác

/ bin / echo -e "$ {INFO} $ {1} không chạy. $ {NORMAL}"

fi

fi

fi

}

hình ảnh


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

# timespec () #

# #

# Mục đích: Một chức năng tiện ích nội bộ để định dạng dấu thời gian #

# tệp nhật ký khởi động. Đặt biến STAMP. #

# #

# Giá trị trả lại: Không được sử dụng #

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

timespec ()

{

STAMP = "$ (echo` date + "% b% d% T%: z" `` hostname`) "trả về 0

}


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

# log_success_msg () #

# Cách sử dụng: log_success_msg ["message"] #

# #

# Mục đích: In thông báo trạng thái thành công ra màn hình và #

# tệp nhật ký khởi động. #

# #

# Đầu vào: $ @ - Tin nhắn #

# #

# Giá trị trả về: Không được sử dụng #

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

log_success_msg ()

{

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

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


# Bỏ các ký tự không in được khỏi tệp nhật ký logmessage = `echo" $ {@} "| sed 's / \\\ 033 [^ a-zA-Z] *. // g'`


timepec

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


trả lại 0

}


log_success_msg2 ()

{

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

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

trả lại 0

}


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

# log_failure_msg () #

# Cách sử dụng: log_failure_msg ["message"] #

# #

# Mục đích: In thông báo trạng thái hỏng hóc ra màn hình và #

# tệp nhật ký khởi động. #

# #

# Đầu vào: $ @ - Tin nhắn #

hình ảnh


# #

# Giá trị trả về: Không được sử dụng #

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

log_failure_msg ()

{

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

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

# Tách các ký tự không in được khỏi tệp nhật ký timespec

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

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


trả lại 0

}


log_failure_msg2 ()

{

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

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

trả lại 0

}


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

# log_warning_msg () #

# Cách sử dụng: log_warning_msg ["message"] #

# #

# Mục đích: In thông báo trạng thái cảnh báo ra màn hình và #

# tệp nhật ký khởi động. #

# #

# Giá trị trả về: Không được sử dụng #

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

log_warning_msg ()

{

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

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


# Bỏ các ký tự không in được khỏi tệp nhật ký logmessage = `echo" $ {@} "| sed 's / \\\ 033 [^ a-zA-Z] *. // g'` timepec

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


trả lại 0

}


log_skip_msg ()

{

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

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


# Bỏ các ký tự không in được khỏi tệp nhật ký logmessage = `echo" $ {@} "| sed 's / \\\ 033 [^ a-zA-Z] *. // g'`

/ bin / echo "BỎ QUA" >> $ {BOOTLOG}

hình ảnh


trả lại 0

}


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

# log_info_msg () #

# Cách sử dụng: tin nhắn log_info_msg #

# #

# Mục đích: In thông báo thông tin ra màn hình và #

# tệp nhật ký khởi động. Không in ký tự dòng mới ở cuối. #

# #

# Giá trị trả về: Không được sử dụng #

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

log_info_msg ()

{

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


# Bỏ các ký tự không in được khỏi tệp nhật ký logmessage = `echo" $ {@} "| sed 's / \\\ 033 [^ a-zA-Z] *. // g'` timepec

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


trả lại 0

}


log_info_msg2 ()

{

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


# Bỏ các ký tự không in được khỏi tệp nhật ký logmessage = `echo" $ {@} "| sed 's / \\\ 033 [^ a-zA-Z] *. // g'`

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


trả lại 0

}


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

# eval_retval () #

# Cách sử dụng: Đánh giá giá trị trả về và in thành công hoặc công bằng khi thích hợp #

# #

# Mục đích: Chức năng thuận tiện để kết thúc một thông báo thông tin #

# #

# Giá trị trả về: Không được sử dụng #

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

eval_retval ()

{

local error_value = "$ {?}"


if [$ {error_value} = 0]; sau đó log_success_msg2

khác

log_failure_msg2

fi

}


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

# check_signal () #

hình ảnh


# Cách sử dụng: check_signal [- {signal} | {dấu hiệu} ] #

# #

# Mục đích: Kiểm tra tín hiệu hợp lệ. Điều này không được xác định bởi bất kỳ dự thảo LSB nào, #

# tuy nhiên, cần phải kiểm tra các tín hiệu để xác định xem #

# tín hiệu được chọn là đối số không hợp lệ cho các hàm khác. #

# #

# Đầu vào: Chấp nhận một giá trị chuỗi đơn có dạng hoặc - {signal} hoặc {signal} #

# #

# Giá trị trả về: #

# 0 - Thành công (tín hiệu là hợp lệ #

# 1 - Tín hiệu không hợp lệ #

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

check_signal ()

{

valsig địa phương


# Thêm xử lý lỗi cho các tín hiệu không hợp lệ

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 if ["$ {?}" -eq "0"]; sau đó

trả lại 0

khác

trả lại 1

fi

}


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

# check_sig_type () #

# Cách sử dụng: check_signal [- {signal} | {dấu hiệu} ] #

# #

# Mục đích: Kiểm tra xem tín hiệu là tín hiệu kết thúc chương trình hay tín hiệu điều khiển #

# Điều này không được xác định bởi bất kỳ dự thảo LSB nào, tuy nhiên, nó bắt buộc phải #

# kiểm tra các tín hiệu để xác định xem chúng có nhằm kết thúc một #

# chương trình hoặc đơn giản để điều khiển nó. #

# #

# Đầu vào: Chấp nhận một giá trị chuỗi đơn có dạng hoặc - {signal} hoặc {signal} #

# #

# Giá trị trả về: #

# 0 - Tín hiệu được sử dụng để kết thúc chương trình #

# 1 - Tín hiệu được sử dụng để điều khiển chương trình #

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

check_sig_type ()

{

valsig địa phương


# Danh sách các tín hiệu kết thúc (giới hạn đối với các mặt hàng thường được sử dụng) valsig = "- ALRM -INT -KILL -TERM -PWR -STOP -ABRT -QUIT -2 -3 -6 -9 -14 -15"


echo "$ {valsig}" | grep - "$ {1}"> / dev / null if ["$ {?}" -eq "0"]; sau đó



trả lại 0

khác

trả lại 1

fi

}


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

# wait_for_user () #

# #

# Mục đích: Chờ người dùng phản hồi nếu không phải là hệ thống không có đầu

# #

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

wait_for_user ()

{

# Chờ người dùng theo mặc định

["$ {HEADLESS = 0}" = "0"] && đọc ENTER

trả lại 0

}


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

# là đúng() #

# #

# Mục đích: Tiện ích để kiểm tra xem một biến có đúng không | có | 1 #

# #

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

là đúng()

{

["$ 1" = "1"] || ["$ 1" = "có"] || ["$ 1" = "true"] || ["$ 1" = "y"] || ["$ 1" = "t"]

}


# End / lib / lsb / init-functions

trả lại 0

khác

trả lại 1

fi

}


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

# wait_for_user () #

# #

# Mục đích: Chờ người dùng phản hồi nếu không phải là hệ thống không có đầu

# #

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

wait_for_user ()

{

# Chờ người dùng theo mặc định

["$ {HEADLESS = 0}" = "0"] && đọc ENTER

trả lại 0

}


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

# là đúng() #

# #

# Mục đích: Tiện ích để kiểm tra xem một biến có đúng không | có | 1 #

# #

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

là đúng()

{

["$ 1" = "1"] || ["$ 1" = "có"] || ["$ 1" = "true"] || ["$ 1" = "y"] || ["$ 1" = "t"]

}


# End / lib / lsb / init-functions


hình ảnh

hình ảnh

: Gerard Beekmans - [email được bảo vệ] DJ Lucas - [email được bảo vệ]

: Bruce Dubbs - [email được bảo vệ]

: Gerard Beekmans - [email được bảo vệ] DJ Lucas - [email được bảo vệ]

: Bruce Dubbs - [email được bảo vệ]

:LFS 7.0

:LFS 7.0

núivirtfs

núivirtfs

S

S

Điện toán đám mây hệ điều hành hàng đầu tại OnWorks: