问题遇到的现象和发生背景
shell 脚本可以手动执行,执行正确,但放在crond定时任务中自动执行,执行也没问题,但是执行结果不对,有一个nohup后台启动命令确未执行成功
相关脚本
#!/bin/sh
kafka_logs=/data/kafka-logs/systerm-0
kafka_path=/data/logQueue/bin
kafka_config=/data/logQueue/config/server.properties
kafka_out=/var/log/kafka-server.log
disk_us=$(df -h| grep -w '/data' | awk '{print $5}' |sed 's/%//g')
#磁盘阀值
disk_to=1
#kakfa进程号
#kafka_pid=$(jps|grep -w 'Kafka' |awk '{print $1}')
#kafka_pid=$(ps -ef | grep -w "/data/logQueue" | grep -v grep | awk '{print $2}')
if [ "$disk_us" -lt "$disk_to" ];then
exit 1;
else
ps -ef | grep -w "/data/logQueue" | grep -v grep | awk '{print $2}' | xargs kill -9 && rm -rf $kafka_logs/* && sleep 5
echo "11111"
**nohup ${kafka_path}/kafka-server-start.sh ${kafka_config} > ${kafka_out} 2>&1 &**
sleep 3
pid=$(ps -ef | grep -w "/data/logQueue" | grep -v grep | awk '{print $2}')
echo "${pid}"
if [ -z "${pid}" ];then
echo "启动失败"
** nohup ${kafka_path}/kafka-server-start.sh ${kafka_config} > ${kafka_out} 2>&1 &**
sleep 3
echo "$(ps -ef | grep -w "/data/logQueue" | grep -v grep | awk '{print $2}')"
else
echo "启动成功"
exit 0
fi
echo "完成"
fi