自定义服务化 - systemctl start elasticsearch
参考文章:
最近接触到了将自定义程序服务化的知识,服务化还是很有必要的,对程序的管理挺方便,所以做做笔记。
一、编辑 .service 文件
在 /usr/lib/systemd/system 目录下创建 elasticsearch.service 文件,文件内容如下所示:
1 | [Unit] |
注意:
ExecStart 为服务的具体运行命令,ExecReload 为重启命令,ExecStop 为停止命令。
[Service] 部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错!
- 文件内容中不能存在注释。
- 文件编辑完成之后,需要执行 systemctl daemon-reload 命令使文件生效。
必要时,需要添加 java 环境变量:
1 | Environment=JAVA_HOME=/usr/java/jdk1.8.0_231 |
二、实现 Elasticsearch 服务开机自启动:
1 | [root@cdh-slave1 system]# systemctl enable elasticsearch |
三、服务操作命令(使用root用户操作):
1 | systemctl start|status|stop elasticsearch |
四、FAQ
1、通过 systemctl start xxx.service 启动服务后,过一会,大概一分钟左右,服务运行失败。
出现这种情况的原因是,ExecStart 进程没有挂在后台启动,所以过了一定时间后,systemctl 则判定进程超时失败又重启。
解决办法是:ExecStart=/bin/bash -c ‘nohup xxx命令 > /dev/null 2>&1 &’,让其后台启动即可。
点关注,不迷路
好了各位,以上就是这篇文章的全部内容了,能看到这里的人呀,都是人才。
白嫖不好,创作不易。各位的支持和认可,就是我创作的最大动力,我们下篇文章见!
如果本篇博客有任何错误,请批评指教,不胜感激 !
原文作者: create17
原文链接: https://841809077.github.io/2020/04/30/Linux/systemctl-custom-service.html
版权声明: 转载请注明出处(码字不易,请保留作者署名及链接,谢谢配合!)