zoukankan      html  css  js  c++  java
  • Linux 中设置进程通过 systemctl 启动

    对于某些脚本或需要启动命令的程序,可以通过创建 xx.service 服务文件来使用 systemctl 控制。

    例如,对于 docker-compose,其后台启动且忽略输出信息的命令为:

    $ nohup docker-compose -f docker-compose.yml up &

    创建 drone.service 服务文件

    如果要使用 systemctl 来启动进程(这里以 Drone 这个持续集成工具为例),需要在 /etc/systemd/system/ 目录下创建一个 drone.service 服务文件:

    $ vim /etc/systemd/system/drone.service

    文件内容如下:

    [Unit]
    Description=Drone server
    After=docker.service nginx.service
    
    [Service]
    Restart=always
    ExecStart=/usr/local/bin/docker-compose -f /etc/drone/docker-compose.yml up
    ExecStop=/usr/local/bin/docker-compose -f /etc/drone/docker-compose.yml stop
    
    [Install]
    WantedBy=multi-user.target

    [Unit] 部分告诉 systemd 在 Docker 和 Nginx 可用之后启动此服务。[Service] 部分告诉 init 系统在发生故障时自动重新启动服务,并且使用 Docker Compose 和我们之前创建的配置文件定义启动和停止 Drone 服务的命令(分别对应 ExecStartExecStop)。[Install] 部分定义了如何使服务在启动时启动。

    通过 systemctl 控制服务(启动、停止、查看状态)

    保存文件并使用如下命令启动服务:

    $ systemctl start drone

    查看服务状态, 如状态显示为 active (running) 则服务运行正常:

    $ systemctl status drone
  • 相关阅读:
    Count Complete Tree Nodes***
    Kth Smallest Element in a BST
    Lowest Common Ancestor of a Binary Search Tree
    VPC实验案例
    BGP实验 (IBGP,EBGP) neighbor
    BGP基础实验 Cyrus
    H3c AC模式切换
    语音实验8 硬件电话通过DHCP方式连接到CME
    语音实验7 2台CME,3台软件电话
    语音实验6 1台CME,2台软件电话
  • 原文地址:https://www.cnblogs.com/kika/p/10851595.html
Copyright © 2011-2022 走看看