วิธีฆ่ากระบวนการที่เพิ่งจะไม่ออก (รวมชื่อผู้ใช้ killall -u ไว้ด้วย)


1

ฉันหลงกลแอพพลิเคชั่นบางตัวใน mac ของฉัน (เข้าไปในเนื้อหาและพยายามเปลี่ยนไฟล์ค่าและอื่น ๆ )

แน่นอนว่าบางครั้งฉันได้รับความขัดข้อง แต่โดยปกติฉันเพิ่งจะฆ่ากระบวนการและทุกอย่างก็ดี

คราวนี้แม้ว่าฉันจะเห็นไอคอนแอปพลิเคชันใน doc (ไม่มีแถบสีขาวด้านล่าง) แต่การออกจากระบบแรงไม่ได้ช่วยอะไรเลย

การไปที่การตรวจสอบแอพพลิเคชั่นไม่ได้ช่วยเพราะแอพไม่ได้อยู่ในรายการ (ไม่มีชื่ออยู่แล้ว) ดังนั้นฉันจึงไปที่ไอคอนแอปเปิ้ลทางด้านซ้าย - ด้านซ้ายคลิกบังคับปิดและแน่นอนแอปนั้นแสดงอยู่ ไอคอนของมัน) แต่ชื่อตอนนี้คือ "JavaApplicationStub"

การออกจากที่นั่นก็ไม่ได้ช่วยอะไรเช่นกัน

ฉันยิงเทอร์มินัลและตรวจสอบกระบวนการทั้งหมด(ps -ax) แต่ไม่มีทั้งแอปและ "JavaApplicationStub" ที่ระบุไว้ (ไม่ใช่ชื่อใกล้เคียง)

ฉันพยายามออกจากระบบ (แล้วปิดเครื่อง mac) แต่ก็ไม่มีประโยชน์เนื่องจากแอปป้องกันไม่ให้ระบบปิด (โดยบังเอิญสิ่งนี้ทำให้ฉันปิดไฟแอปอื่นเพราะมันจะปิดโดยอัตโนมัติ (ระบบพยายามทำ ปิดตัวลงหลังจากทั้งหมด) โชคดีหลังจากสองสามนาทีที่ OS X ยอมรับว่ามันไม่สามารถปิดได้และทำให้ฉันมีความสามารถในการใช้ระบบอีกครั้ง)

ดังนั้นฉันจึงไม่สามารถระบุสิ่งที่กระบวนการที่จะฆ่า

เป็นทางเลือกสุดท้ายที่ฉันทำkillall -u myusernameและนี่ทำให้ฉันไปที่หน้าจอสีเทาซึ่งฉันไม่สามารถทำอะไรได้เลย แต่การกด Cmd + Alt + Esc (หน้าจอบังคับออกจาก) ยืนยันว่ามีเพียงสิ่งเดียวที่ทำงานคือ "JavaApplicationStub"

(ซึ่งหมายความว่า "JavaApplicationStub" ไม่ใช่กระบวนการของฉันหรือว่าระบบไม่สามารถปิดได้)

มันจะยังคงป้องกันไม่ให้ฉันปิดตัวลงอย่างเห็นได้ชัด

ไม่แน่ใจว่าฉันจะสามารถทำให้ไฟเกิดขึ้นได้อย่างไรจากที่นั่น (Finder, Dock และอื่น ๆ ) ฉันต้องกดปุ่มเปิด / ปิดค้างไว้ 10 วินาทีจนกระทั่งในที่สุดแม็คก็ปิดและฉันจะเปิดอีกครั้ง

คำถามที่ 1

ตอนนี้วิธีที่ถูกต้องในการจัดการกับสถานการณ์นี้คืออะไร?

คำถามที่ 2

ฉันทำสิ่งที่ง่ายมากฉันเพิ่งลบไฟล์ (ดูไร้เดียงสา) ในโฟลเดอร์ app.contents เป็นการง่ายที่จะป้องกันไม่ให้ระบบออกจากแอปพลิเคชันหรือไม่ สิ่งนี้อาจถูกนำไปใช้ประโยชน์ได้หรือไม่?

คำตอบ:


1

จากอาคารผู้โดยสาร

killall -9 process_name

คุณสามารถรับสัญญาณทั้งหมด (-9 ส่วน) จาก

man signal 

ฉันจะต้องขอให้คุณทำอย่างละเอียด -9 หมายความว่าอย่างไรมันช่วยอย่างไรทำไมคุณถึงระบุผู้ใช้ว่ามี process_name อยู่แล้วและวิธีรับ process_name (คือ JavaApplicationStub เพราะนั่นไม่ได้ปรากฏใน Application MOnitoring) ขอบคุณมาก! :-)
Ant

ฉันลบมันออกจากคำสั่งแม้ว่าคุณสามารถมีหลายกระบวนการของแอปพลิเคชันเดียวกันที่ทำงานภายใต้ผู้ใช้ที่แตกต่างกันในระบบของคุณ .. ฉันยังเพิ่มในหน้า man page สำหรับสัญญาณเพื่ออธิบายสัญญาณทั้งหมด
Jonathan

1
ชื่อกระบวนการที่สามารถพบได้โดยใช้ด้านบน / PS / htop / pgrep [คุณสามารถใช้ PID เกินไป]
โจนาธาน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.