对于某些脚本或需要启动命令的程序,可以通过创建 xx.service 服务文件来使用 systemctl 控制。
例如,对于 docker-compose,其后台启动且忽略输出信息的命令为:
$ nohup docker-compose -f docker-compose.yml up &如果要使用 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 服务的命令(分别对应 ExecStart 和 ExecStop)。[Install] 部分定义了如何使服务在启动时启动。
保存文件并使用如下命令启动服务:
$ systemctl start drone查看服务状态, 如状态显示为 active (running) 则服务运行正常:
$ systemctl status drone转载于:https://www.cnblogs.com/kika/p/10851595.html
