linux的.service服务开机自启动后为啥会自动停止
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux的.service服务开机自启动后为啥会自动停止相关的知识,希望对你有一定的参考价值。
1.看下home下会不会有内存溢出什么的文件导致的服务假停现象,2.查看进程是否监听,linux如何查询端口是否使用
各种思路。。接口访问不了,但是呢jar包的进程还是存在的ps -ef|grep XX.jar
是有的啊?
http://xx.xx.xx/api/接口名称 报404
服务假停,可能是内存过大,日志超出限制,有个home的目录,我们看下这个目录下有啥内存溢出或者相关的文件可以跟踪,继续排查中。。难定位但是有挑战呢。
jar服务允许,关闭xshell,不能访问,处理nohup
1,通常情况,客户端通过xshell访问centos,进行jar包发布后(命令:java -jar xxx.jar),如果关闭,或者断开xshell后,就不能访问jar包服务了;
2、如何处理呢?
3、使用如下命令:nohup java -jar xxx.jar >指定路径文件.txt &
执行该命令后,可能会出现如下错误:
nohup: ignoring input and redirecting stderr to stdout
4、如下执行命令即可:
nohup java -jar xxx.jar >指定路径文件.txt 2>&1 &
再次执行,问题解决。
5、如果更改jar后,要
ps -aux | grep java找到进程,然后kill杀死进程后,再nohup java -jar xxx.jar >指定路径文件.txt 2>&1 & 参考技术A linux基础操作:主要介绍了服务管理,查询,启用,停止和开机自启设置
1.service [服务管理,启用,停用,查询状态,仅临时生效,重启后恢复原来状态]
例子1:service sshd stop 表示停止sshd服务。例子2:service sshd start 表示启动sshd服务。例子3:service sshd restart 表示重启sshd服务。例子4:service sshd reload 表示重新加载sshd服务的配置信息并立即生效[即刷新配置信息]。例子5:service sshd status 表示查询sshd的工作状态。
2.systemctl [服务管理,启用,停用,查询状态,仅适用于CentOS 7以上版本,仅临时生效,重启后恢复原来状态]
例子1:systemctl stop sshd 表示停止sshd服务例子2:systemctl start sshd 表示启用sshd服务例子3:systemctl restart 表示重启sshd服务。例子4:systemctl reload sshd 表示重载sshd服务的配置信息。例子5:systemctl status sshd 表示查询sshd服务工作状态。
3.查看服务方式
例子1:setup -> 系统服务 表示运行图形配置工具查看服务,可以查看服务,网络设置和其他设置等等。例子2:ls -l /etc/init.d/ 表示使用ls -l 查看目录里的所有服务名。
4.chkconfig [指定运行级别状态下的服务运行状态,如:自启,停止等。]
例子1:chkconfig --list 表示查看所有服务在各个运行级别下的状态。例子2:chkconfig --list | grep sshd 或 chkconfig sshd --list 表示查看sshd服务在各个运行级别下的状态。例子3:chkconfig --level 5 sshd on 表示指定sshd服务在运行级别5图形模式的状态下开机启动服务。例子4:chkconfig --level 2 sshd off 表示指定sshd服务在运行级别2多用户无网络模式状态下开机停止服务。例子5:chkconfig iptables off 表示指定iptables防火墙在所有的运行级别下都是关闭状态。例子6:chkconfig iptables on 表示指定iptables防火墙在所有的运行级别下都是开启状态。
Linux 使用systemd service 实现开机自启动
目标
使用systemd实现开机启动某项服务
参考
How To Use Systemctl to Manage Systemd Services and Units | DigitalOcean
systemctl常用命令
启动或停止服务
systemctl start demo-start.service
systemctl stop demo-start.service
开启/关闭 开机自启动服务
systemctl enable demo-start.service
systemctl disable demo-start.service
重新加载服务
systemctl daemon-reload
查看服务状态
systemctl status demo-start.service
查看现有的service
ll /usr/lib/systemd/system/***.service
cd /etc/systemd/system/multi-user.target.wants/
注意: 使用systemctl 开机自启动的服务不能包含相对路径。 如java web项目的配置文件, log 文件等, 都需要指定绝对路径, 不能使用相对路径
例子:使用Linux系统开机自启动/home/demo目录下的服务 demo-web.war
/home/demo 目录下有如下文件
- demo-web.war
- application.properties
- start.sh
- demo-start.services
start.sh
#! /bin/sh
nohup java -jar -Dspring.config.location=/home/demo/application.properties /home/demo/demo-web.war & echo $! > /home/demo/piddemo.file
demo-start.service
[Unit]
Description=start demo web
[Service]
Type=forking
ExecStart=/bin/bash /home/demo/start.sh
[Install]
WantedBy=multi-user.target
使用systemd实现开机自启动demo-web.war
sudo cp /home/demo/demo-start.service /etc/systemd/system
sudo systemctl enable demo-start.service
sudo systemctl daemon-reload
测试:重启Linux服务器,查看demo-web.war服务是否启动
以上是关于linux的.service服务开机自启动后为啥会自动停止的主要内容,如果未能解决你的问题,请参考以下文章
Linux 使用systemd service 实现开机自启动
Linux 使用systemd service 实现开机自启动