当前位置: 游戏平台 > 互联网科技 > 正文

Linux的Service/Daemon你真正懂了啊?

时间:2019-11-08 22:33来源:互联网科技
yum安装vsftpd后运维脚本也设置好了,管理vsftpd进度非常方便。但编写翻译安装vsftpd的话,校勘配置文件须要重启,就有一点点麻烦了,必要用kill杀掉进程,再键入/usr/local/sbin/vsftpd the

yum安装vsftpd后运维脚本也设置好了,管理vsftpd进度非常方便。但编写翻译安装vsftpd的话,校勘配置文件须要重启,就有一点点麻烦了,必要用kill杀掉进程,再键入/usr/local/sbin/vsftpd &运营。上面提供贰个vsftpd运转脚本,让管理vsftpd也像yum安装管理vsftpd同样轻易。

生机勃勃 service与日常的顺序的界别

  1. #!/bin/bash
  2.  
  3. #chkconfig: 345 60 50
  4. #description:vsftpd
  5. . /etc/rc.d/init.d/functions
  6. if [ -f /etc/init.d/functions ] ; then
  7. . /etc/init.d/functions
  8. elif [ -f /etc/rc.d/init.d/functions ] ; then
  9. . /etc/rc.d/init.d/functions
  10. else
  11. exit 0
  12. fi
  13. vsftpd=/usr/local/sbin/vsftpd      //vsftp运转脚本中配备vsftpd安装的门路
  14. prog=vsftpd
  15. RETVAL=0
  16. start() {
  17.         if [ -n "`/sbin/pidof $prog`" ]
  18.         then
  19.                 echo "$prog: already running"       
  20.                 echo
  21.                 return 1
  22.         fi
  23.         echo "Starting $prog:"
  24.         base=$prog
  25.         $vsftpd &
  26.         RETVAL=$?
  27.         usleep 5000000
  28.         if [ -z "`/sbin/pidof $prog`" ]
  29.         then
  30.                 RETVAL=1
  31.         fi
  32.         if [ $RETVAL -ne 0 ]       
  33.         then
  34.         echo "Startup failure"     //vsftp运转脚本运维退步提醒
  35.         else
  36.         echo "Startup success"     //vsftp运维脚本运转成功唤醒
  37.         fi
  38.         echo
  39.         return $RETVAL
  40. }
  41.  
  42. stop() {
  43.         echo "Stopping $prog:"
  44.         killall $vsftpd
  45.         RETVAL=$?
  46.         if [澳门皇冠金沙网站, $RETVAL -ne 0 ]
  47.         then
  48.         echo "Shutdown failure"     //vsftp运维脚本结束退步提醒
  49.         else
  50.         echo "Shutdown success"     //vsftp运行脚本甘休成功唤醒
  51.         fi
  52.         echo
  53. }
  54.  
  55. case "$1" in
  56. start)
  57.         start     //vsftp运行脚本服务运行操作
  58.         ;;
  59. stop)
  60.         stop     //vsftp运转脚本服务截至操作
  61.         ;;
  62. status)
  63.         status $vsftpd
  64.         RETVAL=$?    //vsftp运维脚本服务场地
  65.         ;;
  66. restart)
  67.         stop
  68.         usleep 5000000    //vsftp运转脚本服务重启操作
  69.         start
  70.         ;;
  71. *)
  72.         echo "Usage: $prog {start|stop|restart|status}"
  73.         exit 1
  74. esac
  75. exit $RETVAL

service(也称得上daemon卡塔 尔(英语:State of Qatar)表示后台运维的程序,日常随系统的启航自动地运营且在顾客logoff后还是能够连续运营。该daemon进度日常在运行后需求与父进程断按键系,并使进程没有决定终端(tty卡塔 尔(阿拉伯语:قطر‎。因为daemon程序在后台实践,不须要于极端人机联作,平常就关门STDIN、STDOUT和STDE科雷傲。daemon不能够输出消息,能够行使syslog或和煦的日志系统实行日志管理。

澳门皇冠金沙网站 1

能够运用/etc/rc.d/init.d/functions脚本中的daemon函数来将平日的主次运营为daemon,比方nfs daemon的起步:

echo -n $"Starting NFS daemon: "
daemon rpc.nfsd $RPCNFSDARGS $RPCNFSDCOUNT
ETVAL=$?
echo

[ $RETVAL -ne 0 ] && exit $RETVAL

 

二 跟 service相关的目录和文书

/etc/init.d -> /etc/rc.d/init.d : /etc/rc.d/init.d 下富含了具有的service的调整脚本,/etc/init.d 是 /etc/rc.d/init.d 的链接。

/etc/rc*.d -> /etc/rc.d/rc*.d : /etc/rc.d/rc*.d 下包罗了颇负的service的机动运营选项的计划,/etc/rc*.d 是 /etc/rc.d/rc*.d 的链接。

/etc/rc.d/rc*.d/ 下的脚本是对 /etc/rc.d/init.d 下的脚本的链接,只是名字扩张K或S前缀,用来代表自动运维或自行终止。

享有的service相关的目录树结构如下:

/etc
|-- init.d -> rc.d/init.d
|-- rc -> rc.d/rc
|-- rc.d
| |-- init.d
| | |-- NetworkManager
| | |-- network
| | |-- nfs
| | |-- xinetd
| | |-- ... ...
| |-- rc
| |-- rc.local
| |-- rc.sysinit
| |-- rc3.d
| | |-- K02NetworkManager -> ../init.d/NetworkManager
| | |-- K20nfs -> ../init.d/nfs
| | |-- S10network -> ../init.d/network
| | |-- S56xinetd -> ../init.d/xinetd
| | |-- ... ...
|-- rc.local -> rc.d/rc.local
|-- rc.news
|-- rc.sysinit -> rc.d/rc.sysinit
|-- rc0.d -> rc.d/rc0.d
|-- rc1.d -> rc.d/rc1.d
|-- rc2.d -> rc.d/rc2.d
|-- rc3.d -> rc.d/rc3.d
|-- rc4.d -> rc.d/rc4.d
|-- rc5.d -> rc.d/rc5.d
|-- rc6.d -> rc.d/rc6.d

 

三 三个service的构成和安顿

叁个service常常包涵三个可实施的公文和二个service调节脚本。 作为service程序本人的可执路程序日常存款和储蓄在/usr/bin下;作为调节service的台本平时存款和储蓄在/etc/rc.d/init.d下,且调节service的脚本的格式相对固化,至少支持start,stop,status参数。 比如smb的service调控脚本为:

#!/bin/sh
#
# chkconfig: - 91 35
# description: Starts and stops the Samba smbd and nmbd daemons
# used to provide SMB network services.
#
# pidfile: /var/run/samba/smbd.pid
# pidfile: /var/run/samba/nmbd.pid
# config: /etc/samba/smb.conf

# Source function library.
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
else
exit 1
fi

# Avoid using root's TMPDIR
unset TMPDIR

# Source networking configuration.
. /etc/sysconfig/network

if [ -f /etc/sysconfig/samba ]; then
. /etc/sysconfig/samba
fi

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 1

# Check that smb.conf exists.
[ -f /etc/samba/smb.conf ] || exit 6

RETVAL=0

start() {
KIND="SMB"
echo -n $"Starting $KIND services: "
daemon smbd $SMBDOPTIONS
RETVAL=$?
echo
KIND="NMB"
echo -n $"Starting $KIND services: "
daemon nmbd $NMBDOPTIONS
RETVAL2=$?
echo
[ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && touch /var/lock/subsys/smb ||
RETVAL=1
return $RETVAL
}

stop() {
KIND="SMB"
echo -n $"Shutting down $KIND services: "
killproc smbd
RETVAL=$?
echo
KIND="NMB"
echo -n $"Shutting down $KIND services: "
killproc nmbd
RETVAL2=$?
[ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && rm -f /var/lock/subsys/smb
echo ""
return $RETVAL
}

restart() {
stop
start
}

reload() {
echo -n $"Reloading smb.conf file: "
killproc smbd -HUP
RETVAL=$?
echo
return $RETVAL
}

rhstatus() {
status smbd
RETVAL=$?
status nmbd
RETVAL2=$?
if [ $RETVAL -ne 0 ] ; then
return $RETVAL
fi
if [ $RETVAL2 -ne 0 ] ; then
return $RETVAL2
fi
}

# Allow status as non-root.
if [ "$1" = status ]; then
rhstatus
exit $?
fi

# Check that we can write to it... so non-root users stop here
[ -w /etc/samba/smb.conf ] || exit 4

编辑:互联网科技 本文来源:Linux的Service/Daemon你真正懂了啊?

关键词: