• 操作系统学习案例20240222-liunx自定义systemctl系统服务


    1 概述信息

    通过tar安装的mysql一般需要直接使用mysql safe进行启动。(其实用service比较简洁,谁让现在都在用systemctl了)

    2 使用service方案

    cp ${mysql}sql/support-files/mysql.server /etc/init.d/mysqld

    service start mysqld

    3 使用systemctl

    /usr/lib/systemd/system目录下增加mysql.service,内容如下

    [Unit]
    Description=Mysql
    After=syslog.target network.target remote-fs.target nss-lookup.target
     
    [Service]
    Type=forking
    PIDFile=/usr/local/mysql/data/mysql.pid
    ExecStart=/usr/local/mysql/support-files/mysql.server start
    ExecReload=/usr/local/mysql/support-files/mysql.server reload
    ExecStop=/usr/local/mysql/support-files/mysql.server stop
    PrivateTmp=false
     
    [Install]

    WantedBy=multi-user.target

    [Unit]
     
    Description=httpd        #当前配置文件的描述信息
    After=network.target     #表示当前服务是在那个服务后面启动,一般定义为网络服务启动后启动
     
     
    [Service]
    Type=forking                                                            #定义启动类型
    ExecStart=/usr/local/apache/bin/apachectl start     #定义启动进程时执行的命令
    ExecReload=/usr/local/apache/bin/apachectl restart  #重启服务时执行的命令
    ExecStop=/usr/local/apache/bin/apachectl stop       #定义关闭进程时执行的命令
    PrivateTmp=true                                                       #是否分配独立空间
     
    [Install]
    WantedBy=multi-user.target                                         #表示多用户命令行状态

    重新载入单元,扫描新的或有变化的单元,使刚刚添加的mysql.service生效

    systemctl daemon-reload

    或者文件

    [root@owly-czjzxn-hadoophbase4-1 init.d]# vi /etc/systemd/system/mysql.service 

    [Unit]
    Description=MySQL Server
    After=network.target

    [Install]
    WantedBy=multi-user.target

    [Service]
    Type=forking
    TimeoutSec=0
    PermissionsStartOnly=true
    ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql --daemonize
    LimitNOFILE=6553500
    LimitNPROC=102400
    Restart=on-failure
    RestartSec=3
    RestartPreventExitStatus=1
    PrivateTmp=false

    vi /usr/lib/systemd/system/mysqld.service
    [Unit]
    Description=MySQL Server
    Documentation=man:mysqld(8)
    Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
    After=network.target
    After=syslog.target
     
    [Install]
    WantedBy=multi-user.target
     
    [Service]
    User=mysql
    Group=mysql
    ExecStart=/topsoft/mysql/mysql/bin/mysqld --defaults-file=/topsoft/mysql/my.cnf
    LimitNOFILE=65536  
    LimitNPROC=65536

  • 相关阅读:
    unity的Thread子线程堵塞主线程ui等元素(解决方案二)
    说说Nodejs高并发的原理
    qlistwidget不显示内容
    批处理文件中运行指定路径下的exe文件
    如何进行测试分析与设计-HTSM启发式测试策略模型 | 京东云技术团队
    在云时代,我们该如何看待新的开源许可证?
    使用VisualStudio生成类图结构图for高效阅读代码
    展会邀请|虹科诚邀您9月14-16日参加第四届自动驾驶地图与定位大会和第五届自动驾驶与人机共驾论坛
    音视频 ffmpeg命令转封装
    剖析虚幻渲染体系(14)- 延展篇:现代渲染引擎演变史Part 2(成长期)
  • 原文地址:https://blog.csdn.net/oradbm/article/details/136233095