zoukankan      html  css  js  c++  java
  • linux问题总结

    编写后台进程的管理脚本,使用service deamon-name stop的时候,出现如下提示:
    /sbin/service: line 66: 23299 Terminated env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" ${OPTIONS}
    原因:
    我把管理脚本的名称设为和后台进程名称一样,即:
    后台进程名称:deamon-name,
    脚本名称:/etc/init.d/deamon-name

    脚本中有一句:
    killall deamon-name
    执行service deamon-name stop,本意是调用deamon-name脚本,结束后台进程deamon-name,结果连“service deamon-name stop”这条进程也被结束了。
    解决方法:
    把后台进程与脚本设置不同名称即可。

    如何让脚本实现开机自启动:

    /etc/rc.d/init.d :实际上无论init.d放在什么地方,它都发挥着相同的作用。为了能够使用init.d目录下的脚本,需要有root权限或sudo权限。每个脚本都将被作为一个命令运行
    命令的结构大致如下所示:
    /etc/init.d/command 选项(/etc/init.d目录下文件都是755的权限)
    comand是实际运行的命令,选项可以有如下几种:
        start
        stop
        reload
        restart
        force-reload

    大多数的情况下,会使用   start,stop,restart   选项。例如,如果想关闭网络,可以使用如下形式的命令:
        /etc/init.d/networking stop  (直接运行即可,Centos6.7中是network没有ing)
    又比如,你改变了网络设置,并且需要重启网络。你可以使用如下命令:
        /etc/init.d/networking restart
    init.d目录下常用初始化脚本有:
        networking
        samba
        apache2
        ftpd
        sshd
        dovecot
        mysql

        。。。。。。。。。

        。。。。。。。。。

    注:/etc/rc.d/init.d下的文件中都会有  # chkconfig: 2345 10 90 的字样,如果要自己在init.d目录下写脚本  这里要注意

    二、关于/etc/rc.local(也是一种开机自启动脚本的方式)

    rc.local是经常使用的一个脚本。
    该脚本是在系统初始化级别脚本运行之后再执行的,因此可以安全地在里面添加任意位置的脚本作为系统启动之后执行的脚本。
    常见的情况是你可以再里面添加nfs挂载/mount脚本。
    此外,你也可以在里面添加一些调试用的脚本命令。

    例如,samba服务总是无法正常运行,而检查发现,samba是在系统启动过程中就该启动执行的,
    也就是说
    samba守护程序配置保证了这种功能本应该正确执行。
    碰到这种类似情况,一般也懒得花大量时间去查为什么,因此只需要简单的在/etc/rc.local脚本里追加上:
        /etc/init.d/samba start
    这样就成功的解决了samba服务异常的问题。


    第三种情况:
    在 /etc/init.d 目录下增加对应程序启动脚本,然后重启测试,内容如下:
    chkconfig --add 脚本名(将该脚本注册到系统服务,此时直接输入脚本可以直接运行)。
    chkconfig 脚本名 on(将该服务加入随系统开机启动),添加自启动,必须在脚本里面加入chkconfig 启动顺序,才能加入进去
    /etc/rc.local 中部分命令无法执行(
    在linux系统中添加随系统启动而自动运行的服务,只需在/etc/rc.local 脚本文件中添加即可,当运行的命令或程序不带路径时,例如:

    #!/bin/bash
    distccd --user nobody --allow 10.10.98.0/24 --log-file=/var/log/distcc.log --verbose --daemon
    loadavg -s 10.10.98.20 >/dev/null 2>&1
    注意,distccd、loadavg命令存放在/usr/local/bin/目录下
    在系统执行这些命令时将报错,无法正常执行!
    由于在执行rc.local脚本时,PATH环境变量未全部初始化,目录/usr/local/bin/ 需在执行/etc/profile 后才被添加到环境变量PATH中。
    解决方法:
    在 /etc/rc.local 执行 /usr/local/bin/ 目录中的命令需要使用绝对路径。 

  • 相关阅读:
    海量前端后台Java源码模板下载
    【项目源码】基于Spring + Spring MVC + MyBatis的图书馆管理系统
    mysql关键字匹配度模糊查询
    Linux下导入MySQL数据库
    MySQL允许远程登录的授权方法
    MySQL之alter语句用法总结
    Linux下MySQL定时备份数据库
    Linux下MySQL备份指定数据库命令
    ZooKeeper核心概念和架构
    MapReduce核心概念及架构
  • 原文地址:https://www.cnblogs.com/smlile-you-me/p/7141331.html
Copyright © 2011-2022 走看看