• linux开机启动的三种方式


    参考:www.cnblogs.com/gzggyy/archive/2012/08/07/2626574.html

    一、/etc/rc.local

    其中的rc.local是在完成所有的系统初始化之后执行,因此我们可以把启动脚本写到里面。
    这是一个最简单的方法,编辑“/etc/rc.local”,把启动程序的shell命令输入进去即可(要输入命令的全路径),类似于windows系统“开始”-->“所有程序”-->“启动”方式 。


    rc.local默认root账号启动。使用其他账号启动的方法是:

    su - admin -c '/bin/sh /usr/local/rsync/rsync.sh'

    二、crontab(类似于windows的任务计划服务)
    通过crontab可以设定程序的执行时间表,例如让程序在每天的8点,或者每个星期一的10点执行一次。
    crontab -l 列出时间表;
    crontab -e编辑时间表;
    crontab -d删除时间表;
     
    “-l”没什么可说的,就是一个查看而已;
    “-e”是编辑,和vi没什么差别(其实就是用vi编辑一个特定文件);
    “-d”基本不用,因为它把该用户所有的时间表都删除了,一般都是用“-e”编辑把不要了的时间表逐行删除;
     
    crontab文件的格式是:M H D m d CMD。
    一个6个字段,其中最后一个CMD就是所要执行的程序,如haha.sh。
    M:分钟(0-59)
    H:小时(0-23)
    D:日期(1-31)
    m:月份(1-12)
    d:一个星期中的某天(0-6,0代表周日)
     
    这5个时间字段用空格隔开,其值可以是一个数字,也可以用逗号隔开的多个数字(或其他) ,如果不需设置,则默认为“*”。
     
    例如,每天的8点5分执行haha.sh,就是“5 8 * * * /opt/./haha.sh”;
     
    每5分钟执行一次(*/5 * * * * ./haha.sh),如果程序不在了就重新启动一次。

    重启服务生效:service crond restart
     
    三、注册系统服务
    操作系统自带的服务,如ssh,ftp等等,开机都是自动启动的,我们也可以通过这种方式让自己开发的程序提高“身价”。

    比如我想把某个已经安装了的服务添加为系统服务,可以执行以下命令:

    把启动脚本放到目录/etc/rc.d/init.d下

    chkconfig --add 服务名称          (首先,添加为系统服务,注意add前面有两个横杠)

    chkconfig -leve 启动级别 服务名 on         

    (说明,3级别代表在命令行模式启动,5级别代表在图形界面启动,on表示开启)

    chkconfig -leve 启动级别 服务名 off              

    (说明,off表示关闭自启动)

    例如:chkconfig -level 3 mysql on                     (说明:让mysql服务在命令行模式,随系统启动)

    也可以使用   chkconfig --del 服务名称    来删除系统服务

    ******************************************************************************************

    如果要查看哪些服务被添加为系统服务可以使用命令 :

    chkconfig --list/chkconfig

     如果要查看哪些程序被添加为自启动,可以使用命令  :

    cat   /etc/rc.local    (查看这个文件中添加了哪些程序路径)

    *******************************************************************************************

    2018.04.18更新:

    对于chkconfig补充一下:

    系统服务的启动脚本(shell脚本)都在这里面:/etc/rc.d/init.d

    怎么判断一个服务是不是系统服务?在这个目录下的就是系统服务,系统服务名字就是“脚本名字”。系统服务,就可以使用命令行services 服务名字 stop/start/restart

    看一个redis的自启动服务脚本配置redisd:从脚本可以看出,脚本里就是配置一下执行文件的命令行路径,以及PID位置、应用端口等信息,和start、restart、stop操作

    注意这条注释必须有,不然chkconfig没有办法对这个服务进行操作:# chkconfig: 2345 90 10

    #!/bin/sh
    # chkconfig: 2345 90 10
    # 90代表Start的顺序,10代表Kill(Stop)的顺序 # Simple Redis init.d script conceived to work on Linux systems # as it does use of the /proc filesystem. REDISPORT=6379 EXEC=/usr/bin/redis-server CLIEXEC=/usr/bin/redis-cli PIDFILE=/var/run/redis_${REDISPORT}.pid CONF="/etc/${REDISPORT}.conf" case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed" else echo "Starting Redis server..." $EXEC $CONF fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $CLIEXEC -p $REDISPORT shutdown while [ -x /proc/${PID} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; *) echo "Please use start or stop as first argument" ;; esac

    http://www.cnblogs.com/killkill/archive/2010/11/08/1871542.html

  • 相关阅读:
    excel数据导入mySql数据库
    springboot-devtools实现项目的自动重启
    Java中List, Integer[], int[]的相互转换
    Postman代码测试工具如何用?
    git提交代码时,Unstaged changes如何过滤.class .log等文件
    Json字符串转map集合
    实现hibernate 的validator校验
    [转载]OpenSSL中文手册之命令行详解(未完待续)
    Openssl ASN.1 说明一 分享
    [转载]Parsing X.509 Certificates with OpenSSL and C
  • 原文地址:https://www.cnblogs.com/shengulong/p/6763688.html
Copyright © 2020-2023  润新知