Score:0

ฉันจะกำหนดเวลาให้การดำเนินการเกิดขึ้นใน 5 วินาทีได้อย่างไร

ธง by

ฉันอยู่ในสถานการณ์ที่ต้องรีสตาร์ทเซิร์ฟเวอร์ SSHD ตามกระบวนการเชื่อมต่อแบบเปิดทั้งหมดที่จำเป็น เลยคิดว่าน่าจะใช้ได้ ครอน หรือ ที่ คำสั่งเพื่อกำหนดเวลาการเริ่มบริการใหม่ในอีกไม่กี่วินาทีข้างหน้า (... และหยุดกระบวนการทันที) ปัญหาคือตัวกำหนดตารางเวลาทั้งสองไม่ได้ถูกสร้างขึ้นสำหรับตารางเวลาไม่กี่วินาที ตัวอย่างเช่น: ตอนนี้ + 1 นาที เป็นคำสั่งที่ถูกต้องในขณะที่: ตอนนี้ + 5 วินาที ไม่ใช่อินพุตที่ใช้การได้ มีความคิดใดที่จะแก้ปัญหานั้นได้อย่างไร

FedKad avatar
cn flag
ฉันไม่คิดว่าคำสั่งเหล่านี้รองรับความละเอียดน้อยกว่าหนึ่งนาที คุณสามารถเขียนสคริปต์ของคุณเองได้โดยใช้ลูปที่มี `sleep' คั่นกลาง
muru avatar
us flag
"(...และฆ่ากระบวนการตอนนี้)" กระบวนการใด
rubmz avatar
by flag
@muru - "(... และฆ่ากระบวนการทันที)" - ฉันเรียกใช้: "kill -1 sshd" (ฆ่ากระบวนการ sshd ทั้งหมดและยุติความเป็นไปได้ในการเชื่อมต่อใหม่จนกว่า SSHD จะรีสตาร์ท
rubmz avatar
by flag
@FedonKadifeli ปัญหาคือสคริปต์ที่รันจะต้องปิดกระบวนการอื่น / กระบวนการพาเรนต์ที่ไม่ใช่ SSHD ซึ่งเป็นวิธีที่ฉันเรียกใช้สคริปต์บนเซิร์ฟเวอร์ มิฉะนั้นการฆ่ากระบวนการ sshd จะยุติสคริปต์นั้นด้วย
muru avatar
us flag
@rubmz หากคุณทำเช่นนั้น `systemd` ควรรีสตาร์ท SSH โดยอัตโนมัติ
rubmz avatar
by flag
@muru ฉันไม่ได้เกิดขึ้นตามที่คาดไว้ในครั้งที่แล้วสำหรับ: 1. สถานะบริการขึ้นในขณะที่กระบวนการถูกยกเลิก 2. ระบบใช้เวลานานเกินไปในการระบุกระบวนการปิด/บริการหยุด หรือนานเกินไปที่จะเริ่มต้นใหม่ (ควร เกิดขึ้นเร็วที่สุด และหยุดทำงานอย่างน้อยหนึ่งนาที) 3. บริการไม่ได้กำหนดค่าสำหรับการตรวจสอบ/รีสตาร์ทอัตโนมัติ
muru avatar
us flag
ไม่มีสิ่งใดที่ดูเหมือนจะเป็นไปได้มากนี่คือ Ubuntu รุ่นใด คุณได้แก้ไขบริการ ssh หรือไม่ `สถานะ systemctl ssh.service` แสดงอะไร
danzel avatar
cn flag
คุณไม่สามารถ `systemctl รีสตาร์ท ssh` ได้ไหม
rubmz avatar
by flag
@muru นี่คือ ubuntu 18 ฉันเพิ่ง pkilled บริการ sshd ของฉันอีกครั้งและดูเหมือนจะไม่สามารถเชื่อมต่อใหม่ได้อีก ... ฉันตรวจสอบไฟล์ systemd init และเปลี่ยนพารามิเตอร์การรีสตาร์ทจาก "Restart=on-failure" เป็น " เริ่มใหม่ = เสมอ". พารามิเตอร์ที่เหลือดูค่อนข้างมาตรฐาน (เป็นเครื่อง AWS...)
rubmz avatar
by flag
บริการ @danzel sshd กำลังดำเนินการตามวัตถุประสงค์ในการรีสตาร์ท วิธีนี้เป็นวิธีที่ง่ายกว่าในการเปิดการเชื่อมต่อแบบเปิด ปัญหาคือบางครั้งคุณจำเป็นต้องฮาร์ดรีเซ็ตการเชื่อมต่อตัวใดตัวหนึ่ง (ซึ่งกรณีของเราแยกไม่ออกว่ากระบวนการ sshd ใดคือ...)
Score:3
ธง cn

ตอบคำถามเดิม:

แทนที่จะกำหนดเวลาให้งานทำงานในไม่กี่วินาที คุณสามารถกำหนดเวลาให้งานทำงานได้ ตอนนี้ และทำให้การดำเนินการล่าช้าเมื่อเริ่มงาน ตัวอย่างเช่น:

echo "sleep 5; wall job ดำเนินการ" | ณ ตอนนี้

โปรดทราบว่า ที่หน้าคนพูดเกี่ยวกับ ตอนนี้:

ระบุวันและเวลาปัจจุบัน อัญเชิญที่ ตอนนี้ จะ ส่งที่ทำงานเพื่อการดำเนินการทันทีที่อาจเกิดขึ้น (ที่ ขึ้นอยู่กับความล่าช้าของกำหนดการที่ไม่ได้ระบุเท่านั้น)

ดังนั้นจึงเป็นไปได้ว่า ณ ตอนนี้ จะไม่ทำงานทันที แต่อย่างน้อยในการติดตั้ง 18.04 ของฉัน

rubmz avatar
by flag
คำตอบที่ดีและมีประโยชน์! ดังนั้นฉันจึงทำเครื่องหมายว่าถูกต้อง

โพสต์คำตอบ

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