zoukankan      html  css  js  c++  java
  • linux服务管理

    这里写图片描述

    Linux服务管理

    第一部分:Linux运行级别

    运行级别含义
    0 关机
    1 单用户模式,用于系统修复
    2 不完全的的命令行模式
    3 命令行模式
    4 暂未定义
    5 图形界面
    6 重启动

    第二部分:查看运行级别:runleve

    runlevel
    #显示的结果是
    N 5
    
    • 1
    • 2
    • 3
    • 4

    这里的会显示两个数字。第二个数字表示现在的运行级别,第一个则表示前一个运行级别。由于我设定开机就是图形界面,所以前一个运行级别为空,即Null。

    第三部分:设定运行级别:init 级别数

    我自己试了下直接从5,图形界面去运行级别3,命令行模式,感觉命令行模式碉堡啊,就是所有中文全部都是无法显示,也无法输入中文。使用init 5就会回来了。

    第四部分:设定默认开机运行级别:/etc/init/lightdm.conf

    这个设定是对Ubuntu而言,一般RadHat不是,配置信息如下内容:

    start on ((filesystem
           and runlevel [!06]
           and started dbus
           and plymouth-ready)
        or runlevel PREVLEVEL=S)    #这个就是设定的默认开机运行级别,我当初装系统的时候就设定了默认开机运行图形界面
    stop on runlevel [016]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    注意,不要把默认开机级别设置成0,4,6,否则系统就起不来了。

    第五部分: Linux系统服务分类

    如果能指定程序安装位置,则一般情况下都要安装在

    /usr/local/
    
    • 1
    • 2

    目录下,在这个目录下新建目录在存放服务,这里拿两个软件做例子:

    注意,这里的usr是 Unix System Resource 的缩写,即Unix系统资源。

    5.1 RPM包和源码包

    其中RPM包安装和源码包安装的差别就是:源码包安装是把源文件下载下来,经过编译后,生成可执行的二进制文件,来运行程序。而RPM包安装则是把编译好的二进制文件直接复制,粘帖到指定的目录位置,然后执行程序。注意,这里的指定是指编写程序的人员指定的位置,是预设好的,这就是为什么一个文件在安装后,在各个目录下都会有文件。

    RPM包安装和源码包安装是的本质,在此基础之上就是我们一般习惯性的shell脚本安装,apt-get,yum等软件管理程序。

    这里回归RPM包和源码包的区别,这里仅讨论两者的安装位置的区别,还有一些别的区别以及他们的优缺点,这里则不再详细论述了,和下面的内容无关。

    • RPM包:无法指定安装位置
    • 源码包:能指定安装位置

    5.2 独立服务与基于Xinetd服务

    Xinetd服务现在渐渐被淘汰了,但是由于没有完全被淘汰,所以这里还是再讲一下。Xinetd服务中文翻译叫超级守护进程,相对于软件的守护者,当一个服务被Xinetd管理后,则该程序运行于Xinetd服务下,原本该服务就不会占用系统内存来运行了,而是当作Xinetd服务中的一部分来运行,形象点就是被Xinetd服务守护了。而与Xinetd守护进程相对的就是独立服务了,该服务运行时占用一定的系统内存,绝大多数程序都是独立服务。

    5.3 查看服务自启动状态:chkconfig –list

    但是这个命令在Ubuntu中是没有的,所以作为替代物的话,有这个sysv-rc-conf

    直接在命令行中输入

    sysv-rc-conf
    
    • 1
    • 2

    会显示下面界面:

    其中的0-6就是上面对应的Linux运行级别,S我不知道是什么含义,通过这个软件就可以修改程序的自启动设置。

    启动和自启动感觉很容易理解吧,在服务器开机时,无需手动开启而会自动开始运行的程序,就叫自启动,与之对应的就是需要人手动启动。

    第六部分 端口含义

    端口就是一台服务器中通往各个服务的道路。如一个用户访问一台服务器主机,如果他访问的是网页内容,则会通往80端口,如果是通过FTP协议来请求文件的,则会通往21端口。当然这种端口——服务之间的相互关系是可以修改的。而一般的设置,也就是默认设置可以查看这个文件:

    /etc/services
    
    • 1
    • 2

    这个文件的内容如下:

    6.1 查看系统端口情况:netstat [选项]

    选项:

    • -t:展示通过tcp协议传输的数据
    • -u:upd协议的数据
    • -l:listening,列出正在监听的网络服务
    • -n:显示端口号
    • -p:显示进程ID(PID)

    第七部分: 独立服务

    独立服务启动方式:程序的绝对路径 和 service 服务名 start|restart|stop|status

    这里还是拿我装的neatbeans为例子讲解,讲解看图片内部:

    这里写图片描述

    这里开启neatbeans服务,实际上就是运行了该命令的绝对路径,本质上我们运行的每一条命令本质上都是在运行程序的绝对路径或者系统的内核命令。所以当我们运行:

    whereis ls
    #就会显示下面的内容:
    ls: /bin/ls /usr/share/man/man1/ls.1.gz
    
    • 1
    • 2
    • 3
    • 4

    这里的 bin/ls 就是程序的绝对路径。

    这里有两个文件,一个是

    /etc/init.d/
    
    • 1
    • 2

    该目录下保存着许多程序的启动程序。

    至于如何使一般软件能够被service管理,则只需要把该文件的启动程序软链接一个到 /etc/init.d/ 目录下即可。

    这是视频里面说的,可是我试过了,把neatbeans的启动程序软链接到了这个目录下 /etc/init.d/ 下,接着使用 service neatbeans start,来试着启动 neatbeans,可是系统提示 neatbeans 服务未安装,所以我也不知道怎么回事了。

    提倡的做法还是以启动命令的绝对路径来启动服务。哦,对了,我还尝试过使用设置别名,来简化操作,可是貌似不行。

  • 相关阅读:
    rsyslog服务日志收集配置
    Python urllib2 发送HTTP Request
    Jenkins版本回滚
    C++算法的40个高频面试问题集锦
    Linux添加自启动daemon service
    python爬虫随机设备信息生成模板
    selenium配置有账号密码验证的代理
    app脱壳后多个dex合并成一个
    webpack优化系列-多进程打包thread-loader
    AtCoder abc158_f
  • 原文地址:https://www.cnblogs.com/duex/p/8061946.html
Copyright © 2011-2022 走看看