linux系统添加程序

您所在的位置:网站首页 linux中安装软件的命令有哪些 linux系统添加程序

linux系统添加程序

#linux系统添加程序| 来源: 网络整理| 查看: 265

1 开机启动配置文件

在linux开发中会遇到需要系统开机时运行或者加载自己的程序或者脚本等。linux系统在开机时会自行加载一些配置文件,可以通过修改配置文件方式,实现开机启动自己的程序、服务等。系统启动加载的配置文件有:

/etc/profile /root/.bash_profile /etc/bashrc /root/.bashrc /etc/profile.d/*.sh /etc/profile.d/lang.sh /etc/sysconfig/i18n /etc/rc.local(/etc/rc.d/rc.local) 2 修改/etc/rc.local文件      2.1 编辑rc.local     vi /etc/rc.local      2.2 在exit 0 前边增加命令

       rc.local中使用脚本命令

       chmod +x  /usr/bin/test.sh

       /etc/init.d/mytest.sh

       echo 0 > /sys/class/gpio/gpio15/value

      2.3  给rc.loacal权限

         执行如下命令:

sudo chmod +x /etc/rc.local 3 /etc/profile.d/下自启动

     系统启动时会自动执行/etc/profile.d/目录下的所有shell脚本,因此,只需要将自己的脚本放到/etc/profile.d/目录下,即可实现脚本开机运行。

4 chkconfig配置开机自启

       1.将脚本文件移动到/etc/init.d/或者/etc/rc.d/init.d/目录下,前者是后者的连接。

       2.脚本文件前面必须添加如下三行代码,否侧会提示chkconfig不支持。

#!/bin/sh //告诉系统使用的shell #chkconfig: 35 20 80 //分别代表运行级别,启动优先权,关闭优先权(必须有) #description: http server     //描述文件,依据脚本功能描述

     3.修改脚本的权限

chmod +x /etc/rc.d/init.d/test.sh

     4.添加开机自启动。

cd /etc/rc.d/init.d chkconfig --add test.sh chkconfig test.sh on

        可以在脚本中添加启动日志记录:

/bin/echo $(/bin/date +%F_%T) >> /var/log/test.log

    5.其他命令

chkconfig test.sh off //关闭开机自启 chkconfig --del test.sh //删除开机自启 chkconfig --list test.sh //查看开启自启配置

 

5 systemctrl开机自启服务

       对于支持 systemd的软件,在安装的时候,会自动在/usr/lib/systemd/system目录添加一个*.service的配置文件。在开机的时候systemd只执行/etc/systemd/system目录里面的配置文件。这样就可以通过修改或者增加该目录下的配置文件,实现对开机服务的配置。

     5.1 查看配置文件

     5.2 编写配置文件        5.2.1[Unit] 字段

               Description——给出当前服务的简单描述

               After——表示本服务启动在某服务之后

               Before——表示本服务启动在某服务之前

               Wants——弱依赖关系,如果依赖的服务启动失败或者停止运行,不影响本服务的执行

               Requires——强依赖,如果依赖的服务程序启动失败或者停止、异常退出,本服务也退出

               这里的After和Before只涉及启动顺序,不涉及依赖关系。

       5.2.2 [Service]字段

               EnvironmentFile——指定当前服务的环境参数文件。该文件内部的key=value键值对,可以用$key的形式,在当前配置文件中获取。

               ExecStart——定义启动进程时执行的命令。           

               ExecReload——重启服务时执行的命令

               ExecStop——停止服务时执行的命令

               ExecStartPre——启动服务之前执行的命令

               ExecStartPost——启动服务之后执行的命令

               ExecStopPost——停止服务之后执行的命令

      所有的启动设置之前,都可以加上一个连词号(-),表示"抑制错误",即发生错误的时候,不影响其他命令的执行。比如,EnvironmentFile=-/etc/sysconfig/xxx(注意等号后面的那个连词号),就表示即使/etc/sysconfig/xxx文件不存在,也不会抛出错误。

              Type——定义启动类型,可以设置如下值:                      

                           simple(默认值):ExecStart关键字启动的进程为主进程

                           forking:ExecStart关键字将以fork()方式启动,此时父进程将会退出,子进程将成为主进程

                           oneshot:类似于simple,但只执行一次,Systemd 会等它执行完,才启动其他服务

                           dbus:类似于simple,但会等待 D-Bus 信号后启动

                           notify:类似于simple,启动结束后会发出通知信号,然后 Systemd 再启动其他服务

                            idle:类似于simple,但是要等到其他任务都执行完,才会启动该服务。一种使用场合是为让该服务的输出,不与其他服务的输出相混合

               RemainAfterExit——进程退出以后,服务仍然保持执行。一旦使用systemctl stop命令停止服务,ExecStop指定的命令就会执行。

               KillMode——定义 Systemd 如何停止服务,可以设置如下值:                                

                                   control-group(默认值):当前控制组里面的所有子进程,都会被杀掉

                                    process:只杀主进程

                                    mixed:主进程将收到 SIGTERM 信号,子进程收到 SIGKILL 信号

                                    none:没有进程会被杀掉,只是执行服务的 stop 命令

                Restart——定义服务退出后,Systemd 的重启方式,可以设置如下值:

                                 no(默认值):退出后不会重启

                                 on-success:只有正常退出时(退出状态码为0),才会重启

                                 on-failure:非正常退出时(退出状态码非0),包括被信号终止和超时,才会重启

                                 on-abnormal:只有被信号终止和超时,才会重启

                                 on-abort:只有在收到没有捕捉到的信号终止时,才会重启

                                 on-watchdog:超时退出,才会重启

                                 always:不管是什么退出原因,总是重启

               RestartSec——Systemd 重启服务之前,需要等待的秒数。

               对于守护进程,推荐Restart的值设为on-failure。对于允许发生错误退出的服务,可以设为on-abnormal。

       5.2.2 [Service]字段

               WantedBy——表示该服务所在的 Target。

                                    multi-user.target:表示多用户命令行状态;

                                    graphical.target:表示图形用户状态,它依赖于multi-user.target。

                 Target 也有自己的配置文件,执行

systemctl cat multi-user.target

            Requires——要求和basic.target一起运行。

            Conflicts——冲突字段。如果rescue.service或rescue.target正在运行,multi-user.target就不能运行,反之亦然。

            After——如果basic.target 、 rescue.service、 rescue.target有启动,则multi-user.target在他们之后启动。

            AllowIsolate——允许使用systemctl isolate命令切换到multi-user.target。

      5.3 systemctl命令 sudo systemctl cat xxx.service # 查看服务配置文件 sudo systemctl start xxx # 启动服务 sudo systemctl status xxx # 查看服务状态 sudo systemctl stop xxx # 停止服务 sudo systemctl kill xxx # 杀死服务(强制结束) sudo systemctl restart xxx # 重启服务 sudo systemctl get-default # 获取默认启动的Target sudo systemctl daemon-reload # 重新加载配置文件 sudo systemctl restart xxx # 重启相关服务

    Loaded——配置文件的位置,是否设为开机启动

    Active——表示正在运行

    Main PID——主进程ID

    Status——由应用本身(这里是 httpd )提供的软件当前状态

    CGroup——应用的所有子进程

    日志块——应用的日志

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3