หน้าต่างถูกซ่อนอยู่ แต่กระบวนการกำลังทำงาน [ปิด]


13

ฉันจะคืนค่าหน้าต่างสำหรับ pid ที่ระบุได้อย่างไร มันจะมีประโยชน์ในบางสถานการณ์ที่หน้าต่างของบางโปรแกรมหายไป (เกิดขึ้นกับฉันในบางครั้ง)

ตัวอย่างเช่นทุกครั้งที่ฉันกำลังจะปิด hexchat มันจะแสดงกล่องโต้ตอบสำหรับการยืนยัน หากฉันคลิกยกเลิกหน้าต่างจะหายไปแล้วแต่กระบวนการยังคงทำงานในพื้นหลัง (ฉันสามารถ pgrep เป็น id)

เป็นไปได้หรือไม่ที่จะกู้คืนหน้าต่างให้ฉันรู้ว่า pid?


คุณเข้าใจสิ่งนี้หรือไม่? สิ่งนี้ยังเกิดขึ้นกับฉันเป็นครั้งคราว - ดูเหมือนว่าพวกเขากำลังมีปัญหาในการแก้ไขปัญหานี้
Jason Kleban

ฉันจำไม่ได้แน่นอน ต้องกลับมาที่หน้าต่างสักพัก ฉันคิดว่ามีคนบอกฉันในการแชทว่ามันได้รับการแก้ไขในสาขาการพัฒนาในเวลา แต่ถ้าคุณบอกว่ามันยังคงเกิดขึ้นข้อผิดพลาดก็ยังอยู่ที่นั่น ... ขออภัยที่จะไม่ได้รับความช่วยเหลือใด ๆ
userEng15

ฉันใช้ xdotool อาจใช้ได้ 'xdotool search -name hexchat' และ 'xdotool windowactivate theWindowId'
zayn

คำตอบ:


3

น่าเสียดายที่ไม่มี - โดยทั่วไปจะไม่มีวิธีรับแอปพลิเคชัน X Windows เพื่อเชื่อมต่อกับระบบหน้าต่างใหม่หากการเชื่อมต่อขาดหายและหน้าต่างถูกทำลาย และหน้าต่างโดยทั่วไปจะหายไปก็ต่อเมื่อมีข้อผิดพลาดในโปรแกรม - ในกรณีนี้กระบวนการอาจอยู่ในสถานะหยุดทำงานโดยไม่ทราบว่ากำลังรอ I / O ที่จะไม่เกิดขึ้นเพราะไม่ทราบว่าหน้าต่างหายไปไหน .

ยกเว้นว่าแอปพลิเคชั่นมีการออกแบบที่หายากมากและช่วยให้คุณส่งสัญญาณหรือข้อความพิเศษเพื่อเชื่อมต่อกับเซิร์ฟเวอร์ X หรือสร้างหน้าต่างใหม่หรือเว้นแต่จะปรากฏอยู่บนหน้าจอในที่ใดที่หนึ่งเป็นไอคอนหรือไอคอนเชื่อมต่อและคุณ สามารถโต้ตอบกับมันได้กระบวนการของโปรแกรมจะต้องถูกฆ่าและคุณต้องรีสตาร์ท

พฤติกรรมการปิดหน้าต่างสุดท้ายโดยไม่ออกจากกระบวนการโดยทั่วไปแล้วเป็นข้อบกพร่องที่คุณสามารถรายงานต้นน้ำเกี่ยวกับแอปพลิเคชัน

(หมายเหตุ: มีข้อยกเว้นที่หายากเช่นเว็บเบราว์เซอร์ที่ทำให้กระบวนการทำงานอยู่แม้ว่าหน้าต่างสุดท้ายจะปิด - แต่ในกรณีเหล่านั้นให้คลิกที่ไอคอนของเบราว์เซอร์หรือเรียกใช้อีกครั้งจากบรรทัดคำสั่งเพียงแค่บอกว่ากำลังทำงานอยู่ ขั้นตอนในการเปิดหน้าต่างใหม่อีกครั้งแอพจะต้องมีการเขียนเป็นพิเศษเพื่อจัดการกับความไม่มีหน้าต่างชั่วคราวหากนี่จะใช้งานได้)


3

ดังที่แบรนดอนโรดส์อธิบายหากหน้าต่างถูกทำลาย / ซ่อนโดยกระบวนการหลักไม่มีวิธีกู้ / สร้าง / แสดงใหม่จากภายนอกกระบวนการหรือแอปพลิเคชันเอง

คุณสามารถยืนยันได้จากตัวจัดการหน้าต่างลอง: wmctrl -l -pไม่มีหน้าต่างที่เกี่ยวข้องกับ PID อยู่ในรายการ

ดังนั้นเป็นไปได้ที่hexchatยังคงตอบสนองลอง:

hexchat -e --command="gui show"

-e เปิด URL หรือรันคำสั่งใน HexChat ที่มีอยู่

อ้างอิง:


1
ทำงานได้อย่างสมบูรณ์แบบ
Amar

1

หากกระบวนการเป็นเพียงแค่ในพื้นหลังบางทีคำตอบนี้เหมาะกับที่นี่ด้วย:

ใช้fgเพื่อนำกระบวนการกลับสู่เบื้องหน้า

ดูคำตอบแบบเต็มสำหรับคำแนะนำเพิ่มเติม


1

ฉันไม่รู้ hexchat แต่อาจเป็นไปได้ว่าโปรแกรมใช้ไอคอนถาดซึ่งทำให้สามารถกลับไปที่หน้าต่างหลักได้ แต่น่าเสียดายที่มีการใช้งานหลายถาดใน linux และไม่ทั้งหมดทำงานร่วมกัน

ฉันมีปัญหากับโปรแกรม RadioTray ซึ่งไม่ปรากฏขึ้นอีกต่อไปหลังจากอัปเดตเป็น Xubuntu 14.04 โซลูชันได้รับการกำหนดค่าใหม่อีกครั้ง (ไฟล์ ~ / .local / share / radiotray / config.xml มีตัวเลือก 'gui_engine' พร้อมด้วย 'appindicator' ค่า 3 ค่าที่เป็นไปได้ 'systray' และ 'chooser')

หากวิธีนี้ไม่ได้ผลให้ลองตรวจสอบตัวเลือก / การตั้งค่าของแอปพลิเคชันของคุณ อาจเป็นไปได้ว่าคุณพบตัวเลือก 'ย่อเล็กสุดไปที่ถาด' ปิดใช้งานและลองปิดหน้าต่างอีกครั้ง


0

คุณสามารถลอง Ctrl + Alt + Del แล้วจบกระบวนการ หวังว่านี่จะช่วยได้ นี่คือสิ่งที่ฉันทำเมื่อโปรแกรมใน Ubuntu หยุดทำงานหรือทำตัวตลกให้ฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.