在使用Linux时,经常会使用`servicemysqlrestart`等命令来方便服务的运行。具体的服务如何写,下面的内容将通过下面的例子来理解:如何写一个简单的服务,可以在服务异常关闭时自动开启简单的配置例子nano/lib/systemd/system/xx.service[Unit]Description=CheckGPUINFObychenwei#ServicedescriptionWants=network-online.target#Service依赖网络after=network-online.target[Service]Type=simpleExecStart=/root/shell/agent/chkgpu#service时执行脚本启动ExecReload=/bin/kill-HUP$MAINPID#服务重载时执行脚本RestartSec=5s#自动启动间隔restart=on-failure#什么情况下自动重启[Install]WantedBy=multi-user.target[Unit]Description=Advancedkey-valuestoreAfter=network.target[Service]Type=forkingExecStart=/usr/local/redis/bin/redis-server/usr/local/redis/etc/redis.confExecStop=/bin/kill-sTERM$MAINPIDPIDFile=/var/run/redis_6379.pidRestart=alwaysRestartSec=5sRestart=失败[Install]WantedBy=multi-user.targetAlias=redis.servicenginx示例[Unit]Description=AhighperformancewebserverandareverseproxyserverAfter=network.target[Service]Type=forkingPIDFile=/var/run/nginx.pid#ExecStartPre=/usr/local/nginx/sbin/nginxExecSstart=/usr/sbin/nginxExecReload=/usr/sbin/nginx-sreloadExecStop=-/sbin/start-stop-daemon--quiet--stop--retryQUIT/5--pidfile/run/nginx.pidTimeoutStopSec=5KillMode=mixed[Install]WantedBy=multi-user.target常用命令systemctlenable--nownginx.service#立即打开并启动systemctldaemon-reload#重新加载systemctlenablenginx.service#开机时启动systemctldisablenginx.service#开机时禁用systemctllist-unit-files|greenabled#启动服务列表systemctl--failed#启动失败服务列表wsshfile=/lib/systemd/system/myssh.servicemv$file$file.bakcat?EOF?$file[Unit]Description=WebSSHserverbychenwei.pipinstallwebsshWants=network-online.targetAfter=network-online.target[Service]Type=simpleExecStart=wsshExecReload=/bin/kill-HUP$MAINPIDRestartSec=5sRestart=on-failure[Install]WantedBy=multi-user.targetEOFcat$fileisshfile=/usr/bin/isshmv$file$file.bakcat<
