ฉันต้องการสร้างรายการ crontab เพื่อให้เริ่มต้นหน้าจอเริ่มต้นเซิร์ฟเวอร์เกมและแยกออก นี่เป็นในกรณีที่เซิร์ฟเวอร์รีบูตและฉันต้องการให้มันเริ่มต้นโดยอัตโนมัติสำหรับฉัน
0 0 0 0 0 (คำสั่ง)
ควรทำงานเมื่อเริ่มต้น
มันรันไฟล์เชลล์อยู่ที่ ~ / cube / server.sh
ฉันต้องการสร้างรายการ crontab เพื่อให้เริ่มต้นหน้าจอเริ่มต้นเซิร์ฟเวอร์เกมและแยกออก นี่เป็นในกรณีที่เซิร์ฟเวอร์รีบูตและฉันต้องการให้มันเริ่มต้นโดยอัตโนมัติสำหรับฉัน
0 0 0 0 0 (คำสั่ง)
ควรทำงานเมื่อเริ่มต้น
มันรันไฟล์เชลล์อยู่ที่ ~ / cube / server.sh
คำตอบ:
สิ่งนี้จะทำงานได้ดี ตัวอย่างนี้วางไข่หน้าจอและเรียกใช้ "top":
screen -d -m top
ใน crontab ของคุณตามที่ระบุไว้คุณต้องการทำสิ่งนี้:
@reboot /usr/bin/screen -dmS gameserver-screen /opt/mycoolgame/bin/gameserver
แน่นอนถ้าเซิร์ฟเวอร์เกมต้องการชุดสภาพแวดล้อม "ปกติ" คุณสามารถเข้าใกล้:
@reboot (. ~/.profile; /usr/bin/screen -dmS gameserver-screen /opt/mycoolgame/bin/gameserver)
. ~/.profileเป็นส่วนหนึ่งทำอย่างไร
@reboot (. ~/cube; /usr/bin/screen -dmS gameserver-screen ./server.sh)
ฉันมีสถานการณ์ที่คล้ายกัน แต่เนื่องจากข้อ จำกัด อื่น ๆ ที่ไม่สมเหตุสมผลฉันไม่สามารถใช้ crontab ได้ จริง ๆ แล้วฉันมีหน้าจอการโทร Inittab (แทนที่ชื่อบางส่วนเพื่อปิดบังข้อมูล):
XXX:5:respawn:/bin/su - useraccount -c "screen -D -m -c /home/xxxxxx/file.screenrc"
ใน 'file.screenrc' เป็นที่ที่ฉันตั้งค่าตัวเลือกไม่กี่:
sessionname obscuresessionname
multiuser on
cd
screen /home/xxxxxxx/programtostart
วิธีนี้มันเริ่มต้นในการบูตและหากโปรแกรมเสียชีวิตหรือปิดหน้าจอมันจะเกิดใหม่ มันอาจไม่ได้รับการพิจารณาแบบดั้งเดิม แต่ฉันต้องทำงานกับข้อกำหนดสภาพแวดล้อมแปลก ๆ หากเราจำเป็นต้องถอดมันออกไปเราจะต้องแสดงความคิดเห็นในบรรทัดนั้นและฆ่าเซสชัน จากนั้นเมื่อพร้อมที่จะนำมันกลับมาไม่แสดงความคิดเห็นและริเริ่ม q