text Shell使用cron自动调起挂掉的程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了text Shell使用cron自动调起挂掉的程序相关的知识,希望对你有一定的参考价值。
#!/bin/bash
# 如果检测到没有指定脚本执行, 那么唤起程序
# cronjob配置
# * * * * * /home/ads_app/low_latency_pipeline/online/minute_level_pipeline/cron_restart_spark_script.sh spark_batch_process_main_script.py realtime
source ~/.bashrc
source ~/.bash_profile
script_name=$1
run_mode=$2
cd "$(dirname "$0")"
ps -aux|grep $script_name|grep -v grep|grep -v $0|grep -v "tail"|grep -v "vim" > /dev/null
if [[ 0 != $? ]]; then
if [[ "realtime" == $run_mode ]]; then
curl "http://jenkins.jd.com/job/send_ump_alarm/buildWithParameters?token=123456" -d "UMP_KEY=jd.ad.data.lowDelay.rerun&ALARM_INFO="$script_name,restart""
fi
export PYSPARK_PYTHON=/usr/local/bin/python3
spark-submit \
--jars spark-2-clickhouse.jar \
--driver-memory 16G \
--executor-memory 20G \
--executor-cores 10 \
--num-executors 100 \
--conf spark.yarn.maxAppAttempts=4 \
--conf spark.yarn.am.attemptFailuresValidityInterval=1h \
--conf spark.yarn.executor.failuresValidityInterval=1h \
--conf spark.task.maxFailures=8 \
--py-files sparkpipeline.zip \
$script_name $run_mode >> $script_name.log \
2>> $script_name.err.log &
fi
需要注意的有以下几点:
- cronjob配置要用脚本或者命令的绝对路径
- 脚本要source使环境变量生效
- 通过cd手动切换pwd
以上是关于text Shell使用cron自动调起挂掉的程序的主要内容,如果未能解决你的问题,请参考以下文章
Linux 下使用 Monit 实现服务挂掉自动拉起
Supervisor使用详解
服务器挂掉的几种可能
面试官:怎么解决Eureka某一个服务挂掉的问题?
nohup是把进程弄到后台去了吗?
supervisor的简单了解