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
  • 相关阅读:
    BZOJ 2034 【2009国家集训队】 最大收益
    vijos P1780 【NOIP2012】 开车旅行
    BZOJ 2115 【WC2011】 Xor
    BZOJ 3631 【JLOI2014】 松鼠的新家
    BZOJ 4717 改装
    BZOJ 2957 楼房重建
    BZOJ 4034 【HAOI2015】 T2
    BZOJ 1834 【ZJOI2010】 network 网络扩容
    BZOJ 2440 【中山市选2011】 完全平方数
    BZOJ 2733 【HNOI2012】 永无乡
  • 原文地址:https://www.cnblogs.com/kika/p/10851595.html
Copyright © 2011-2022 走看看