GotoKnow
  • เข้าระบบ
  • สมัครสมาชิก
  • แผงจัดการ
  • ออกจากระบบ
GotoKnow

SGE problem.

วันนี้ส่งงานไปรันที่คลัสเตอร์ ผ่าน sun grid engine ( SGE ) แต่ว่าโปรแกรมไม่สามารถรันได้ ขึ้นข้อความว่า

Warning: no access to tty (Bad file descriptor).
Thus no job control in this shell.

วิธีการแก้ไข สามารถทำได้โดย เพิ่ม -S /bin/bash  ไปที่ท้ายสุดของไฟล์ /opt/gridengine/default/common/sge_request

เสร็จแล้ว สามารถรันได้ตามปกติ ครับ 

Credit : list.sdsc.edu

บันทึกนี้เขียนที่ GotoKnow โดย 

คำสำคัญ (keywords): gridclusterhpcsge
หมายเลขบันทึก: 62860
เขียน:
แก้ไข:
ความเห็น: 2
อ่าน:
สัญญาอนุญาต: สงวนสิทธิ์ทุกประการ

ความเห็น (2)

ถ้าผิดพลาดก็ขออภัยด้วย

ผมเดาเอาว่า การเพิ่ม -S /bin/bash ลงไปในแฟ้มนี้ น่าจะเป็นการบังคับให้ทุก script ที่สั่งผ่าน sge มีบรรทัดนี้อยู่

ซึ่งเป็น directive ที่จะบอกให้ SGE รู้ว่า script นี้ใช้ shell อะไร

ผมไม่แน่ใจว่า จะเกิดปัญหาขึ้นหรือไม่ ถ้าผู้ใช้เองเกิดระบุ directive นี้ลง ใน script ตัวเอง แล้วบอกว่าอยากใช้ shell อื่น

ทางแก้ที่ผมเลือกคือ เข้าไปแก้ default shell ของ queue นั้นๆ ให้เป็น bash แทน

 โดยใช้คำสั่ง

qconf -mq <queue name>

มันจะเข้า vi ให้อัตโนมัติ แล้วให้แก้ค่า shell ซึ่งจากเครื่องที่ผมใช้ มันจะใช้ค่าเดิมเป็น /bin/csh  ให้แก้เป็น /bin/bash

รวมถึงแก้ global configuration ให้ SGE รู้จัก bash โดยเรียกคำสั่ง 

qconf -mconf global 

 จะเห็น list ของ shellให้ เพิ่ม bash เข้าไป

เคยอ่านเจอใน SGE mailling list ครับ

 

 

 

ดีเลยครับ ขอบคุณครับ