ฉันกำลังทำงานเกี่ยวกับการซ่อมบำรุงอัตโนมัติที่เกี่ยวข้องกับการเริ่มต้นและการหยุดสคริปต์ที่เรียกใช้ในเซสชันหน้าจอ วิธีการของฉันคือฆ่าเซสชันหน้าจอจากนั้นรีสตาร์ทและเรียกใช้คำสั่งจากภายในสคริปต์โดยใช้ความสามารถในการสร้างหน้าจอและส่งคำสั่งโดยไม่ต้องแนบหน้าจอ
อย่างไรก็ตามฉันมีปัญหากับสิ่งนี้ screen -d -m -S screen_name
ฉันสามารถสร้างหน้าจอได้อย่างถูกต้องโดยไม่ได้แนบใช้ อย่างไรก็ตามถ้าฉันใช้คำสั่งตาม:
screen -S screen_name-X stuff "command 1"'echo -ne '\015''"command 2"'echo -ne '\015''
ด้วย echo -ne '\ 015' ที่ห่อด้วย backticks มากกว่าราคาเดียว มันคือการจำลองผู้ใช้กดปุ่ม Enter เป็นคำสั่งที่ฉันใช้จะย้ายไปยังไดเรกทอรีและรันสคริปต์อยู่ที่นั่น คำสั่งนี้ใช้งานได้ แต่ต่อเมื่อมีการแนบหน้าจอกับเมื่อมันถูกสร้างขึ้น ขณะที่ฉันพยายามทำให้กระบวนการสร้างหน้าจอโดยอัตโนมัติและเรียกใช้คำสั่งภายในนั้นฉันต้องการหลีกเลี่ยงการแนบและแยกออกจากสคริปต์ ฉันจะพยายามแนะนำการสร้างเชลล์สคริปต์ที่มีคำสั่งที่ฉันต้องดำเนินการภายในหน้าจอและแก้ไขตามผลลัพธ์ของฉัน
มีวิธีการสร้างหน้าจอและเรียกใช้คำสั่งภายในหน้าจอในคำสั่งเดียวหรือไม่ต้องแนบกับหน้าจอหลังจากสร้าง แต่ก่อนดำเนินการคำสั่งหรือไม่
ขอบคุณล่วงหน้า.
** อัปเดต - หลังจากลองใช้คำแนะนำเพื่อวางคำสั่งที่ฉันต้องการเรียกใช้ภายในเชลล์สคริปต์ฉันสามารถสร้างหน้าจอและรันคำสั่งจากภายในหน้าจอได้สำเร็จ แต่ฉันได้รับพฤติกรรมที่เมื่อสคริปต์หยุดทำงาน หน้าจอปิดเช่นกัน นี่ไม่ควรเป็นปัญหาเพราะสคริปต์เป็นสคริปต์การบันทึกที่ควรหยุดด้วยความรู้ของผู้ดูแลระบบ sys หรือผ่านสคริปต์ที่ฉันพยายามพัฒนา แต่มันจะดีกว่าถ้ามีการตั้งค่าหน้าจอในลักษณะที่หน้าจอ ไม่หายไปหากสคริปต์หยุดทำงาน เป็นไปได้ไหมที่จะทำสิ่งนี้ให้สำเร็จ **
.screenrc
ที่มีบรรทัดzombie kr
ซึ่งจะเปิดหน้าต่างเสร็จแล้วและคุณสามารถกดk
เพื่อปิด winodw หรือr
เรียกใช้คำสั่งในหน้าต่างอีกครั้ง ฉันมีสิ่งนี้เป็นค่าเริ่มต้น. screenrc ของฉัน