Score:3

สคริปต์ Bash ทำงานมากกว่าหนึ่งครั้ง ไม่รู้ว่าทำไม

ธง in

ฉันมีสคริปต์ทุบตีที่เรียบง่ายซึ่งทำงานเป็นงาน cron ทุกนาที มันทำให้บันทึกเป็นไฟล์ทุกอย่างทำงานได้ดี แต่มีสิ่งหนึ่งที่แปลก สคริปต์สร้างบันทึกมากกว่าหนึ่งรายการในเวลาเดียวกัน ฉันไม่เข้าใจว่ามันเป็นไปได้อย่างไร นี่คือรหัส

#!/bin/bash


# -c ส่งคืนจำนวนบรรทัดในผลลัพธ์ grep
isActive=$(สถานะ systemctl การค้นหาแบบยืดหยุ่น | grep "ใช้งานอยู่ (กำลังทำงาน)" -c)

ถ้า (( $isActive == 0 )) 
แล้ว

  systemctl เริ่มการค้นหาแบบยืดหยุ่น
  
  การประทับเวลา=$(วันที่ +"%Y-%m-%d %H-%M-%S")
  แตะ /root/custom-scripts/elasticsearch/start.log
  echo "บริการ ${timestamp} Elasticsearch ต้องรีสตาร์ทโดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน" >> /root/custom-scripts/elasticsearch/start.log

ไฟ

งานครอน

* * * * * ทุบตี /root/custom-scripts/elasticsearch/start-elasticsearch.sh

ไฟล์บันทึกมีลักษณะดังนี้

2021-07-13 16-17-45 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-17-45 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-17-45 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-17-45 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-20-15 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-20-15 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-20-15 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-23-11 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-26-36 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-26-36 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-26-36 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-33-13 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-33-13 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-33-13 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-33-13 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-33-25 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-34-10 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-35-10 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-40-39 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-40-39 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-40-39 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-40-39 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-40-39 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-41-13 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน
2021-07-13 16-42-07 ต้องรีสตาร์ทบริการ Elasticsearch โดย /root/custom-scripts/elasticsearch/start-elasticsearch.sh เนื่องจากสถานะบริการไม่ได้ใช้งาน

มีคนที่สามารถอธิบายให้ฉันได้ไหม ขอบคุณมาก.

hr flag
ไม่เกี่ยวข้องกับปัญหา แต่ systemctl มีการดำเนินการ `is-active' ที่คุณสามารถทดสอบได้โดยตรง เช่น `ถ้า systemctl --quiet is-active elasticsearch; แล้ว...`
in flag
ขอบคุณฉันไม่รู้เกี่ยวกับมัน
hr flag
สิ่งเดียวที่ฉันคิดว่าอาจอธิบายสิ่งที่คุณเห็นคือหากไฟล์ elasticsearch.service มี 'ExecStartPre' หรือ 'ExecStartPost' ที่ (โดยตรงหรือโดยอ้อม) เรียกใช้สคริปต์เดียวกัน
in flag
อย่าเข้าใจมัน Elasticsearch ไม่ทราบเกี่ยวกับสคริปต์
in flag
เหตุผลคือฉันไม่สนใจเกี่ยวกับ Restart=on-failure และอย่างที่สองคือไฟล์บันทึกที่แสดงให้ฉันเห็นกรณีล้มเหลว
in flag
อ๊อฟ ทำใจไม่ได้.... ขออภัยนางภาษาอังกฤษ
in flag
ไม่รู้เกี่ยวกับ systemd.timer ฉันต้องการทราบว่าเหตุใดสิ่งนี้จึงเกิดขึ้นกับงาน cron มาตรฐาน ฉันไม่ใช่ผู้เชี่ยวชาญลีนุกซ์ ฉันต้องจัดการมันในระดับ "ของฉัน" ซึ่งควรจะทำงาน
ng flag
เพิ่ม `$$` ในข้อความของคุณเพื่อแสดง PID ของกระบวนการสำหรับการดีบัก
Score:0
ธง cn

ฉันจะตรวจสอบสองสามสิ่ง:

  1. มีกระบวนการ cron สองกระบวนการขึ้นไปทำงานอยู่หรือไม่? คุณสามารถตรวจสอบได้ด้วย ps -ef|grep cron
  2. มีอะไรใน /etc/cron.d ที่เรียกใช้สคริปต์นี้หรือไม่ ดูเหมือนไม่น่าเป็นไปได้ แต่จะไม่เจ็บที่จะตรวจสอบ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา