2,设置开机启动service
步骤如下(以启动开机启动redis为例子)
2-1 在目录/etc/systemd/system 下新建 xxx.service 文件
文件格式sample 如下
[Unit]
#启动进程的描述
Description=start redis
#该服务在什么时候启动,此处表示 系统日志之后
After=syslog.target
#该服务执行的命令(可执行二进制文件,路径必须为绝对路径)
[Service]
ExecStart=/usr/local/bin/redis-server /home/redis-4.0.9/conf/redis.conf
#Type 可选多种模式
Type=simple[Install]
WantedBy=multi-user.target
2-2 systemctl enable xxx.service 激活该service
2-3 使用 systemctl daemon-reload 命令激活新增的service
2-4 systmctl start/stop/status xxx.service;启动/停止/查看 服务
如果需要执行sh文件则应该将shell 的全部路径加上/bin/sh
想要查看service 运行产生的错误信息可以打开/var/log/messages 文件 或则按照命令systemctl status xxx.service -l
参考连接http://0pointer.de/blog/projects/systemd-for-admins-3.html
异常实例 在部署自己的项目时发现 当使用type 为simple 时 服务启动时系统提示
Systemd State 'stop-sigterm' timed out killing xxx
分析需要启动的程序 该程序在启动过程中shell会休眠大概30秒,感觉是进程阻塞太久,被底层系统杀掉了,结果将type 换成 forking 模式就好了 ,不知道这样子分析是不是对的^_^