分类: RHEL/CentOS

  • /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录

    yum install glibc glibc.i686

    原因是在64位系统下运行了32位的程序

    加上对应的包就好

     

  • CentOS7和之前版本差别(部分)

    一、CentOS的Services使用了systemd来代替sysvinit管理
    systemd是服务管理程序,他整合了service和chkconfig的功能为一体,可以永久性或只在当前会话中启用/禁用服务。

    #查看正在运行的服务
    systemctl
    #以树形列出正在运行的进程,它可以递归显示控制组内容
    systemd-cgls

    #启动,停止,重启服务
    systemctl start foo.service
    systemctl stop foo.service
    systemctl restart foo.service

    #查看一个服务的状态
    systemctl status foo.service
    #开机时启用一个服务
    systemctl enable foo.service

    #开机时关闭一个服务
    systemctl disable foo.service

    #查看服务是否开机启动
    systemctl is-enabled foo.service

    例:开机启动sshd服务
    systemctl enable sshd.service

    启动一个服务:systemctl start postfix.service
    关闭一个服务:systemctl stop postfix.service
    重启一个服务:systemctl restart postfix.service
    显示一个服务的状态:systemctl status postfix.service
    在开机时启用一个服务:systemctl enable postfix.service
    在开机时禁用一个服务:systemctl disable postfix.service
    查看服务是否开机启动:systemctl is-enabled postfix.service;echo $?
    查看已启动的服务列表:systemctl list-unit-files|grep enabled

    说明:启用服务就是在当前“runlevel”的配置文件目录/etc/systemd/system/multi-user.target.wants/里,建立/usr/lib/systemd/system里面对应服务配置文件的软链接;禁用服务就是删除此软链接。
    查看了/usr/lib/systemd/system 里的文件,语法跟旧版/etc/init.d/里的系统服务脚本完全不同了。

    二、修改系统运行级别:

    1、systemd使用比sysvinit的运行级更为自由的target替代。第3运行级用multi-user.target替代。第5运行级用graphical.target替代。runlevel3.target和runlevel5.target分别是指向 multi-user.target和graphical.target的符号链接。
    可以使用下面的命令切换到“运行级别3 ”:
    systemctl isolate multi-user.target或systemctl isolate runlevel3.target
    可以使用下面的命令切换到“运行级别5 ”:
    systemctl isolate graphical.target或systemctl isolate runlevel5.target

    2、如何改变默认运行级别?
    systemd使用链接来指向默认的运行级别。在创建新的链接前,可以通过下面命令删除存在的链接: rm /etc/systemd/system/default.target
    默认启动运行级别3 :
    ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
    默认启动运行级别5 :
    ln -sf /lib/systemd/system/graphical.target/etc/systemd/system/default.target
    systemd不使用/etc/inittab文件。

    3、如何查看当前运行级别?
    旧的runlevel命令在systemd下仍然可以使用。可以继续使用它,尽管systemd使用 ‘target’ 概念(多个的 ‘target’ 可以同时激活)替换了之前系统的runlevel。
    等价的systemd命令是systemctl list-units –type=target

    三、其他配置工具:

    1、setup和ntsysv工具还是保留了,但是功能已大大减弱,以前ntsysv工具可以控制所有系统服务的自启动,现在只能控制少部分服务。
    2、/etc/resolv.conf这个DNS配置文件没变。
    3、/etc/sysconfig/network-scripts/ifcfg-ens192网卡配置文件名字和一些选项有所变化。
    4、引导方式改用grub2引导,grub2有如下特点:1、模块化设计;2、支持多体系硬件架构;3、支持国际化多语言;4、独立内存管理;5、支持脚本语言。

    附:systemd简介
    systemd是Linux下的一种init软件,由Lennart Poettering带头开发,并在LGPL 2.1及其后续版本许可证下开源发布。其开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果,最终代替现在常用的System V与BSD风格init程序。
    与多数发行版使用的System V风格init相比,systemd采用了以下新技术:
    采用Socket激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能;
    用cgroups代替PID来追踪进程,以此即使是两次fork之后生成的守护进程也不会脱离systemd的控制。
    从设计构思上说,由于systemd使用了cgroup与fanotify等组件以实现其特性,所以只适用于Linux。

  • Centos7 yum安装nginx

    安装准备依赖lib库
    yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

    安装Nginx
    安装之前,检查一下是否已经安装有nginx

    find -name nginx

    如果系统已经安装了nginx,那么就先卸载

    yum remove nginx

    yum安装nginx
    新建
    /etc/yum.repos.d/nginx.repo
    添加以下,以centos7为例

    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/mainline/rhel/7/$basearch/
    gpgcheck=0
    enabled=1

    rpm –import http://nginx.org/keys/nginx_signing.key

    yum install nginx
    /bin/systemctl status nginx.service