java项目启动内存配置或启动日志,杀死进程

nohup java -Xloggc:./wse-gc-%t.log  -Xms512M -Xmx1024M   -jar zdhyw20230410.jar > nohup.out  2>&1 &

nohup java -jar -Xms512M -Xmx1024M  zdhyw20230410.jar > nohup.out  2>&1 &

 

-Xms128M -Xmx256M -XX:PermSize=64M -XX:MaxPermSize=128M
-Xloggc:./wse-gc-%t.log -XX:+PrintCommandLineFlags -version -XX:InitialHeapSize=1052906816 -XX:MaxHeapSize=16846509056 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC

 

nohup java -jar -Xms128M -Xmx256M -XX:PermSize=64M -XX:MaxPermSize=128M xxxx.jar

Xms — 堆内存初始大小
Xmx — 堆内存最大值
PermSize — 永久内存初始大小
MaxPermSize — 永久内存最大值

linux通过jar包名称杀死对应的进程

 kill -9 $( ps -ef | grep "youjar.jar" | grep -v "grep" | awk '{print $2}')

输出日志在当前目录:

nohup java -jar ace-auth.jar >> nohup`date +%Y-%m-%d`.out 2>&1 &
 

指定日志目录输出:

指定输出到当前目录log文件夹中

nohup java -jar ace-auth.jar >> ./log/nohup`date +%Y-%m-%d`.out 2>&1 &
 

发现无法自动切割日志,做一个定时脚本,凌晨时候kill掉进程然后再启动

kill -9 $(ps -ef |grep java |grep -w 'java'|grep -v 'grep'|awk '{print $2}')
或者

ps -ef | grep java | grep -v grep | awk '{print $2}' | xargs kill -9
定时执行:

crontab -e
0 0 * * * /root/everyday.sh

补:现在使用的方案:

将原日志文件复制出来,然后清空原日志文件

登录后复制
cat *.out >> nohup`date +%Y-%m-%d`.out
echo " " > nohup.out
-----------------------------------
windows java 输出日志到文件 nohup java -jar输出日志

 

赋予文件执行权限

chmod 777 split_logs.sh

 

 

开启定时任务,执行split_logs.sh

vim /etc/crontab

 

 

wq保存退出,第二天查看前一天文件有没生成

我这边脚本已经执行了,说明定时任务已生效

但是别人好像也有失效的情况,使用第二种方式

crontab -l

 

 

说明没有生效,但是我这边其实也是这样的输出。。。

crontab -e

 

 

将前面的定时任务的指令,输入进入,wq保存退出

crontab -l

 

 

 

#!/bin/bash

# 脚本中只要出现执行不是true的语句,就退出不再往下执行
set -e

# 导入环境变量
export jar_PATH=/data/web
export APP_PATH=/home/

# 判断老的进程是否存在,若存在就杀掉
killjar()
{
pid=`ps -ef|grep supplier-center |grep java |awk '{print $2}'`
echo "supplier-center Id list :$pid"
if [ "$pid" = "" ]
then
echo "no supplier-center pid alive"
else
kill -9 $pid
fi
}

# 调用函数
killjar

# 判断老的jar包是否存在,若存在就删除
[ -f $APP_PATH/supplier-center-1.0.0-SNAPSHOT.jar ] && \
rm -rf $APP_PATH/supplier-center-1.0.0-SNAPSHOT.jar

# 更新最新的jar包
mv $jar_PATH/supplier-center-1.0.0-SNAPSHOT.jar $APP_PATH

# 重新启动
nohup java -jar $APP_PATH/supplier-center-1.0.0-SNAPSHOT.jar > \
$APP_PATH/admin.log &

# sleep 10秒, 等待java进程完成起来
sleep 10s

echo 'Start success!'

 

 或

#!/bin/bash
while true
do
pid=$(ps -ef | grep myiar.jar | grep -v grep | awk '{print $2}')
if[ -n "$pid" ]
then
echo "Killing process $pid"
kill -9 $pid
else
echo "Process not found"
fi
sleep 360 # 每时检套一次
done

 

posted @ 2023-06-30 10:56  全琪俊  阅读(224)  评论(0编辑  收藏  举报