zoukankan      html  css  js  c++  java
  • 嵌入式成长轨迹13 【嵌入式环境及基础】【Linux shell深入】【运行级别脚本介绍】

    一、运行级别
    1、运行级别目录
    /etc/rcN.d N代表0、1、2...

    2、查找当前运行级别
    runlevel

    3、运行级别目录文件格式
    SXXscript,KXXscript
     S代表服务启动,K代表服务停止,XX是两位级别数字

    【终端示例】

    [root@localhost ~]# cd /etc/rc3.d/
    [root@localhost rc3.d]# ls
    K01smartd K73ypbind S15mdmonitor
    K01smolt K74lm_sensors S18rpcidmapd
    K02NetworkManager K74nscd S19rpcgssd
    K02NetworkManagerDispatcher K74ntpd S25netfs
    K05innd K84btseed S25pcscd
    K05saslauthd K84bttrack S26rsyslog
    K10dc_server K87multipathd S26udev-post
    K10psacct K88nasd S27messagebus
    K12dc_client K88wpa_supplicant S28autofs
    K15httpd K89dund S28setroubleshoot
    K20jetty K89netplugd S44acpid
    K20nfs K89pand S50bluetooth
    K20tomcat5 K89rdisc S55sshd
    K24irda K91capi S80sendmail
    K25squid S00microcode_ctl S85gpm
    K30spamassassin S03vmware-tools S90ConsoleKit
    K35dovecot S05kudzu S90crond
    K35nmb S06cpuspeed S95atd
    K35smb S08ip6tables S96avahi-daemon
    K36lisa S08iptables S97yum-updatesd
    K36mysqld S09isdn S98cups
    K36postgresql S10network S98haldaemon
    K50netconsole S11auditd S99anacron
    K50vsftpd S12restorecond S99firstboot
    K69rpcsvcgssd S13irqbalance S99local
    K73named S13rpcbind
    K73winbind S14nfslock

    二、inittab
    1、运行级别控制文件
     /etc.inittab

    2、修改inittab文件

    三、启动应用程序
    1、启动脚本分析
    start|stop|restart
    cat /etc/init.d/crond

    2、启动脚本
    service server start|stop|restart|...
    server 是脚本名字
    script_name start|stop|restart


    脚本实例

    cpdir.sh
    实现复制文件夹但不复制其中文件
    当测试编程结束后,想将文件夹清空但一个个文件删除又非常麻烦,就可以复制空文件夹之后直接覆盖

     1 #! /bin/bash
    2 #cpdir.sh
    3 #此脚本用于将源目录下的子目录全部复制到目的目录中,不复制原目录中的文件,确保目的目录中的子目录是空目录。
    4
    5 #脚本用法函数
    6 usage()
    7 {
    8 echo "cpdir.sh 源目录 目的目录"
    9 }
    10
    11 #判断是否为两个参数,否则提示脚本用法
    12 #注意$#用来列出参数个数
    13 if [ $# -ne 2 ]
    14 then
    15 {
    16 usage
    17 exit 0
    18 }
    19 fi
    20
    21 srcdir=$1
    22 desdir=$2
    23 #判断源目录${srcdir}是否为目录,否则提示错误信息和用法
    24 if [ ! -d $srcdir ]
    25 then
    26 {
    27 usage
    28 echo "错误:源目录${srcdir}不是目录"
    29 exit
    30 }
    31 fi
    32
    33 #判断目的目录${desdir}是否为目录,否则提示错误信息和用法
    34 if [ ! -d $desdir ]
    35 then
    36 {
    37 usage
    38 echo "错误:目的目录${desdir}不是目录"
    39 exit
    40 }
    41 fi
    42 processid=$$;
    43
    44 #查找源目录下的所有子目录,输出并保存到/tmp/srcdir_进程号.txt文件中
    45 echo "源目录下${srcdir}所有的子目录"
    46 echo "-------------------------------"
    47 find $srcdir/* -type d | /usr/bin/tee /tmp/srcdir_tmp_${processid}.txt
    48 sed "s/^${srcdir}/${desdir}/g" /tmp/srcdir_tmp_${processid}.txt >/tmp/srcdir_${processid}.txt
    49
    50 #在目的目录下建立空子目录
    51 rm -rf ${desdir}/*
    52 for subdir in `cat /tmp/srcdir_${processid}.txt`
    53 do
    54 {
    55 mkdir ${subdir}
    56 }
    57 done
    58 echo ""
    59 echo "目标目录下${desdir}所有的子目录"
    60 echo "-------------------------------"
    61 find $desdir/* -type d | /usr/bin/tee /tmp/desdir_${processid}.txt
    62 #比较在目的目录下建立空子目录后的差异
    63 echo ""
    64 echo "比较目标目的和源目录的差异"
    65 echo "--------------------------"
    66 diff /tmp/desdir_${processid}.txt /tmp/srcdir_${processid}.txt
    67 rm -f /tmp/srcdir_${processid}.txt
    68 rm -f /tmp/desdir_${processid}.txt
    69 rm -f /tmp/srcdir_tmp_${processid}.txt

    终端

    [root@localhost ~]# cpdir.sh 图片 图片1
    源目录下图片所有的子目录
    -------------------------------
    图片/其他
    图片/桌面

    目标目录下图片1所有的子目录
    -------------------------------
    图片1/其他
    图片1/桌面

    比较目标目的和源目录的差异
    --------------------------
  • 相关阅读:
    《数据通信与网络》笔记--数据链路层的成帧
    设计模式10---设计模式之原型模式(Prototype)
    Yii 控制dropdownlist / select 控件的宽度和 option 的宽度
    [置顶] 如何vs在cocos2dx项目中打印中文
    mongodb实现简单的增删改查
    北京和硅谷在创新方面的区别
    Android 解决Gallery下ScrollView滑动事件冲突
    Java 授权内幕--转载
    JAVA 上加密算法的实现用例---转载
    基于事件的 NIO 多线程服务器--转载
  • 原文地址:https://www.cnblogs.com/zeedmood/p/2382484.html
Copyright © 2011-2022 走看看