在centos6上面,
一直使用
service mongod start/stop/restart/status
但是,在centos7和ubuntu16.04之后的版本上,service
命令就有点不好用了。
可以使用systemctl
命令来完成操作。
systemctl is-enabled servicename.service #查询服务是否开机启动 systemctl enable *.service #开机运行服务 systemctl disable *.service #取消开机运行 systemctl start *.service #启动服务 systemctl stop *.service #停止服务 systemctl restart *.service #重启服务 systemctl reload *.service #重新加载服务配置文件 systemctl status *.service #查询服务运行状态 systemctl daemon-reload #重新加载一些更改了配置的基础程序配置
为某个程序创建多个service。
例如:mongodb,默认有一个service,但是我们有时候要多开server,需要创建多个service。
service文件,一般存在于【/etc/systemd/system】,或是【/lib/systemd/system/】
例如原始的mongodb的service【/lib/systemd/system/mongod.service】,
[Unit] Description=High-performance, schema-free document-oriented database After=network.target Documentation=https://docs.mongodb.org/manual [Service] User=mongodb Group=mongodb ExecStart=/usr/bin/mongod --config /etc/mongod.conf PIDFile=/var/run/mongodb/mongod.pid # file size LimitFSIZE=infinity # cpu time LimitCPU=infinity # virtual memory size LimitAS=infinity # open files LimitNOFILE=64000 # processes/threads LimitNPROC=64000 # locked memory LimitMEMLOCK=infinity # total threads (user+kernel) TasksMax=infinity TasksAccounting=false # Recommended limits for for mongod as specified in # http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings [Install] WantedBy=multi-user.target
我们只需要复制该文件,更改里面的【ExecStart】,就可以创建多个service了。
cp ./mongod.service ./mongod_a.service # 然后修改【ExecStart】的值 # 然后enable就可以开机自启动 systemctl enable mongod_a.service # 启动该服务 systemctl start mongod_a.service # 查看服务启动状态,以及启动失败原因 systemctl status redis-server.service journalctl -xe
自定义自启动脚本
我们经常使用的,就是创建一个开机自启动的脚本,执行我们自定义的一些配置。
首先,我们创建一个文件【/data/tools/init/startup.sh】,里面创建的脚本是
#!/bin/sh echo "1111\n" >> /data/tools/init/111.log
接下来创建service。创建文件【/lib/systemd/system/cus-startup.service】
[Unit] Description=cus startup init After=network.target [Service] Type=simple ExecStart=/data/tools/init/startup.sh [Install] WantedBy=multi-user.target
这样,就可以执行【systemctl enable cus-startup】来开机自启动脚本。
我们也可以手动再次执行【service cus-startup start】来启动这个脚本。