ไม่สามารถฆ่ากระบวนการหลับ


13

ฉันดูเหมือนจะไม่สามารถฆ่ากระบวนการ -9 ซึ่งอยู่ในสถานะการขัดจังหวะการนอนหลับ (S):

[root@jupiter ~]# ps -elf | grep yum
4 S root     16790     1  0  75   0 - 73779 -      Jan15 ?        00:00:04 /usr/bin/python /usr/bin/yum -y install python-pip
[root@jupiter ~]# kill -9 16790
[root@jupiter ~]# ps -elf | grep yum
4 S root     16790     1  0  75   0 - 73779 -      Jan15 ?        00:00:04 /usr/bin/python /usr/bin/yum -y install python-pip

เป็นไปได้อย่างไร? มีวิธีฆ่ากระบวนการโดยไม่ต้องรีบูตเครื่องหรือไม่?

BOUNTY:ฉันสนใจคำอธิบายว่ามันเกิดขึ้นได้อย่างไร

UPDATE:นี่คือผลลัพธ์ของ lsof:

[root @ jupiter ~] # lsof -p 16790
คำสั่ง PID USER FD ประเภทอุปกรณ์ขนาด / ปิดชื่อ NODE
yum 16790 root cwd DIR 1166,56842 4096 16886249 / home / del
yum 16790 รูท rtd DIR 253,0 4096 2 /
yum 16790 root txt REG 253,0 8304 336177337 / usr / bin / python
yum 16790 รูท mem reg 253,0 144776 346128569 /lib64/ld-2.5.so
ยศ 16790 รูท mem REG 253,0 1718232 346128573 /lib64/libc-2.5.so
yum 16790 รูท mem reg 253,0 23360 346128599 /lib64/libdl-2.5.so
ยศ 16790 รูท mem REG 253,0 145872 346128584 /lib64/libpthread-2.5.so
yum 16790 รูท mem reg 253,0 615136 346128602 /lib64/libm-2.5.so
yum 16790 รูท mem reg 253,0 1244792 336171087 /usr/lib64/libpython2.4.so.1.0
ยศ 16790 รูท mem REG 253,0 95464 346128744 /lib64/libselinux.so.1
yum 16790 root mem reg 253,0 53448 346128750 /lib64/librt-2.5.so
yum 16790 รูท mem reg 253,0 13960 336187564 /usr/lib64/libplds4.so
yum 16790 root mem reg 253,0 58400 346128752 /lib64/libgcc_s-4.1.2-2008080825.so.1
yum 16790 รูท mem reg 253,0 78384 336173796 /usr/lib64/libelf-0.137.so
yum 16790 root mem reg 253,0 1139672 336187570 /usr/lib64/librpmdb-4.4.so
yum 16790 รูท mem reg 253,0 407792 336187568 /usr/lib64/librpmio-4.4.so
yum 16790 รูท mem reg 253,0 233144 336171420 /usr/lib64/libnspr4.so
yum 16790 รูท mem reg 253,0 375656 336187569 /usr/lib64/libsqlite3.so.0.8.6
yum 16790 รูท mem reg 253,0 17992 336187563 /usr/lib64/libplc4.so
yum 16790 รูท mem reg 253,0 386784 336187571 /usr/lib64/librpm-4.4.so
yum 16790 รูท mem reg 253,0 154776 336170228 /usr/lib64/librpmbuild-4.4.so
yum 16790 รูท mem reg 253,0 647608 346128759 /lib64/libglib-2.0.so.0.1200.3
yum 16790 root mem reg 253,0 1297136 336176959 /usr/lib64/libxml2.so.2.6.26
yum 16790 รูท mem reg 253,0 15584 346128756 /lib64/libtermcap.so.2.0.8
yum 16790 รูท mem reg 253,0 1234328 336187566 / usr/lib64/libnss3.so
yum 16790 รูท mem reg 253,0 18152 346128670 /lib64/libutil-2.5.so
ยศ 16790 รูท mem REG 253,0 34240 336177071 /usr/lib64/libpopt.so.0.0.0
ยศ 16790 รูท mem REG 253,0 67792 336187567 /usr/lib64/libbz2.so.1.0.3
yum 16790 รูท mem reg 253,0 143144 346128763 /lib64/libexpat.so.0.5.0
yum 16790 root mem reg 253,0 56434416 336184082 / usr / lib / locale / locale-archive
yum 16790 root mem reg 253,0 132656 336560181 /usr/lib64/python2.4/site-packages/rpm/_rpmmodule.so
yum 16790 รูท mem reg 253,0 154016 336187565 /usr/lib64/libnssutil3.so
yum 16790 รูท mem REG 253,0 96885 345638632 /usr/local/greenplum-loaders-3.3.0.0-build-3/lib/libz.so.1.2.3
yum 16790 รูท mem reg 253,0 247496 346128741 /lib64/libsepol.so.1
yum 16790 รูท mem reg 253,0 369144 336168883 /usr/lib64/libsoftokn3.so
yum 16790 root mem reg 253,0 312336 336178453 /usr/lib64/libfreebl3.so
yum 16790 root mem reg 253,0 20240 336530067 /usr/lib64/python2.4/lib-dynload/timemodule.so
yum 16790 root mem reg 253,0 25048 336529953 /usr/lib64/python2.4/lib-dynload/stropmodule.so
yum 16790 root mem REG 253,0 18984 336530051 /usr/lib64/python2.4/lib-dynload/cStringIO.so
yum 16790 รูท mem reg 253,0 21816 336529943 /usr/lib64/python2.4/lib-dynload/collectionsmodule.so
yum 16790 root mem reg 253,0 52152 336530044 /usr/lib64/python2.4/lib-dynload/_socketmodule.so
yum 16790 root mem reg 253,0 17200 336530045 /usr/lib64/python2.4/lib-dynload/_ssl.so
yum 16790 รูท mem reg 253,0 315080 346128749 /lib64/libssl.so.0.9.8e
yum 16790 รูท mem reg 253,0 1366912 346128748 /lib64/libcrypto.so.0.9.8e
yum 16790 รูท mem reg 253,0 190976 336187552 /usr/lib64/libgssapi_krb5.so.2.2
yum 16790 root mem reg 253,0 613928 336184245 /usr/lib64/libkrb5.so.3.3
yum 16790 root mem REG 253,0 11760 346128747 /lib64/libcom_err.so.2.1
yum 16790 root mem reg 253,0 153720 336181723 /usr/lib64/libk5crypto.so.3.1
yum 16790 root mem reg 253,0 35984 336177832 /usr/lib64/libkrb5support.so.0.1
yum 16790 รูท mem reg 253,0 9472 346128681 /lib64/libkeyutils-1.2.so
yum 16790 รูท mem reg 253,0 92816 346128730 /lib64/libresolv-2.5.so
yum 16790 root mem REG 253,0 75384 336530050 /usr/lib64/python2.4/lib-dynload/cPickle.so
yum 16790 root mem reg 253,0 23736 336530064 / usr/lib64/python2.4/lib-dynload/structmodule.so
yum 16790 root mem reg 253,0 27336 336528958 /usr/lib64/python2.4/lib-dynload/operator.so
yum 16790 root mem reg 253,0 21520 336529958 /usr/lib64/python2.4/lib-dynload/zlibmodule.so
yum 16790 รูท mem reg 253,0 37944 336528952 /usr/lib64/python2.4/lib-dynload/itertoolsmodule.so
yum 16790 root mem REG 253,0 21528 336528929 /usr/lib64/python2.4/lib-dynload/_localemodule.so
yum 16790 root mem REG 253,0 21208 336529939 /usr/lib64/python2.4/lib-dynload/binascii.so
yum 16790 รูท mem reg 253,0 12080 336530062 /usr/lib64/python2.4/lib-dynload/shamodule.so
yum 16790 root mem REG 253,0 13168 336530058 /usr/lib64/python2.4/lib-dynload/md5module.so
yum 16790 root mem REG 253,0 18000 336529947 /usr/lib64/python2.4/lib-dynload/mathmodule.so
yum 16790 รูท mem reg 253,0 12504 336529934 /usr/lib64/python2.4/lib-dynload/_randommodule.so
yum 16790 รูท mem reg 253,0 15320 336528948 /usr/lib64/python2.4/lib-dynload/fcntlmodule.so
yum 16790 root mem reg 253,0 32816 336530049 /usr/lib64/python2.4/lib-dynload/bz2.so
yum 16790 root mem REG 253,0 8608 336529946 /usr/lib64/python2.4/lib-dynload/grpmodule.so
yum 16790 root mem reg 253,0 38696 336529819 /usr/lib64/python2.4/site-packages/cElementTree.so
yum 16790 รูท mem reg 253,0 42672 336530047 /usr/lib64/python2.4/lib-dynload/arraymodule.so
yum 16790 root mem REG 253,0 9368 336528915 /usr/lib64/python2.4/lib-dynload/_bisect.so
yum 16790 รูท mem reg 253,0 74992 336529944 /usr/lib64/python2.4/lib-dynload/datetime.so
yum 16790 root mem reg 253,0 372912 336560510 /usr/lib64/python2.4/site-packages/M2Crypto/__m2crypto.so
yum 16790 root mem REG 253,0 7120 336529937 /usr/lib64/python2.4/lib-dynload/_weakref.so
yum 16790 root mem REG 253,0 17496 336528966 /usr/lib64/python2.4/lib-dynload/selectmodule.so
yum 16790 root mem REG 253,0 46448 336528961 /usr/lib64/python2.4/lib-dynload/pyexpat.so
yum 16790 root mem REG 253,0 33896 336529820 /usr/lib64/python2.4/site-packages/_sqlite.so
yum 16790 root mem reg 253,0 41784 336530075 /usr/lib64/python2.4/site-packages/_sqlitecache.so
yum 16790 รูท mem reg 253,0 25104 336530066 /usr/lib64/python2.4/lib-dynload/termios.so
yum 16790 root mem REG 253,0 7280 336530065 /usr/lib64/python2.4/lib-dynload/syslog.so
yum 16790 รูท mem reg 253,0 25464 336265457 /usr/lib64/gconv/gconv-modules.cache
yum 16790 root mem reg 253,0 66544 336528926 /usr/lib64/python2.4/lib-dynload/_cursesmodule.so
yum 16790 รูท mem reg 253,0 380336 336181932 /usr/lib64/libncurses.so.5.5
yum 16790 root mem REG 253,0 405880 336529957 /usr/lib64/python2.4/lib-dynload/unicodedata.so
yum 16790 รูท mem reg 253,0 24576 236520047 / วาร์ด / lib / รอบต่อนาที /__db.001
yum 16790 root mem REG 253,0 53880 346128424 /lib64/libnss_files-2.5.so
ยศ 16790 รูท mem REG 253,0 23736 346128408 /lib64/libnss_dns-2.5.so
yum 16790 รูท mem reg 253,0 1318912 236520050 / วาร์ / lib / รอบต่อนาที /__db.002
yum 16790 รูท mem reg 253,0 663552 236520051 / วาร์ / lib / รอบต่อนาที /__db.003
yum 16790 root mem reg 253,0 769074 336174965 /usr/share/locale/en_US/LC_MESSAGES/redhat-dist.mo
yum 16790 root 0u CHR 136,8 0t0 10 / dev / pts / 8 (ถูกลบ)
yum 16790 root 1u CHR 136,8 0t0 10 / dev / pts / 8 (ถูกลบ)
yum 16790 root 2u CHR 136,8 0t0 10 / dev / pts / 8 (ถูกลบ)
ยำ 16790 รูต 3u unix 0xffff8104388d2e40 ซ็อกเก็ต 0t0 4675113
yum 16790 root 4w REG 253,0 0 236522326 / var/log/yum.log
yum 16790 root 5u REG 253,0 605184 236520025 / วาร์ด / แคช / yum/WANdisco-dev/primary.xml.gz.sqlite
yum 16790 รูท 6u REG 253,0 20480 236524002 / วาร์ / cache/yum/addons/primary.sqlite.old.tmp (ถูกลบ)
yum 16790 root 7u REG 253,0 12578816 236519970 /var/cache/yum/base/primary.xml.gz.sqlite.old.tmp (ลบ)
yum 16790 root 8u REG 253,0 17972224 236523993 /var/cache/yum/epel/317109b44f1b0b40d910dc60c9080e62c7f4b16a-primary.sqlite.old.tmp (ถูกลบ)
yum 16790 root 9u REG 253,0 967680 236524055 / วาร์ด / แคช / yum/extras/primary.sqlite.old.tmp (ถูกลบ)
yum 16790 รูท 10u REG 253,0 459776 246415366 / วาร์ด / แคช / yum/pgdg92/primary.sqlite.old.tmp (ลบ)
yum 16790 root 11u REG 253,0 4927488 236524060 / วาร์ด / แคช / yum/updates/primary.sqlite.old.tmp (ถูกลบ)
yum 16790 root 12r reg 253,0 65204224 236519434 / var / lib / รอบต่อนาที / แพ็คเกจ
yum 16790 รูท 13r REG 253,0 45056 236519438 / var / lib / rpm / ชื่อ
yum 16790 root 14u IPv4 4675317 0t0 TCP jupiter.example.com:33597->riksun.riken.go.jp:http (ESTABLISHED)
yum 16790 root 15u IPv4 4675939 0t0 TCP jupiter.example.com:52708->freedom.itsc.cuhk.edu.hk:http (CLOSE_WAIT)
yum 16790 root 16r reg 253,0 65204224 236519434 / var / lib / รอบต่อนาที / แพ็คเกจ
yum 16790 รูท 17r REG 253,0 45056 236519438 / var / lib / รอบต่อนาที / ชื่อ
yum 16790 root 18r reg 253,0 12288 236519440 / var / lib / rpm / Pubkeys
yum 16790 root 20r FIFO 0,6 0t0 4676024 ไปป์
ยำ 16790 รูท 24 วัตต์ FIFO 0,6 0t0 4676024 ท่อ

ฆ่าโพรเซสอื่นที่จัดการล็อคตัวเดียวกันและมันอาจจะปลดออกได้
David Schwartz

@ David - ฉันไม่สามารถฆ่ากระบวนการ yum ใด ๆ ในรายการกระบวนการข้างต้น; พวกเขาทั้งหมดมีปัญหาเดียวกัน
del

ฉันลบบรรทัดพิเศษออกเนื่องจากพวกเขาไม่ได้เพิ่มข้อมูลใด ๆ เพิ่มเติมและทำให้การอ่านโพสต์ของคุณยากขึ้น
terdon

@slm - lsof แสดงซ็อกเก็ต TCP ไปที่ riksun.riken.go.jp:80 (ESTABLISHED) และ freedom.itsc.cuhk.edu.hk:80 (CLOSE_WAIT) ฉันเดาว่าอาจเป็นได้?
del

@slm - โปรดดูคำถามที่อัปเดตของฉัน
del

คำตอบ:


18

กระบวนการในสถานะ S หรือ D มักอยู่ในการเรียกระบบการบล็อกเช่นการอ่านหรือการเขียนไปยังไฟล์หรือเครือข่ายรอโปรแกรมที่เรียกว่าเสร็จสิ้นหรือในขณะที่รอเซมาฟอร์หรือการซิงโครไนซ์ดั้งเดิมอื่น ๆ มันจะเข้าสู่โหมดสลีปขณะรอ

คุณไม่สามารถ "ปลุกมัน" - มันจะดำเนินการต่อเมื่อข้อมูล / ทรัพยากรที่กำลังรออยู่เท่านั้น นี่เป็นเรื่องปกติและคาดหวังและมีปัญหาเมื่อพยายามจะฆ่า

คุณสามารถลองใช้strace -p pidเพื่อค้นหาการเรียกของระบบที่กำลังเกิดขึ้นสำหรับโพรเซส

จากวิกิพีเดีย :

สถานะสลีปที่ไม่สามารถขัดจังหวะได้คือสถานะสลีปที่จะไม่จัดการสัญญาณทันที มันจะตื่นขึ้นมาเป็นผลมาจากทรัพยากรที่รอคอยเมื่อพร้อมใช้งานหรือหลังจากหมดเวลาที่เกิดขึ้นในระหว่างการรอที่ (ถ้าระบุเมื่อนำไปนอน) ส่วนใหญ่จะใช้งานโดยไดรเวอร์อุปกรณ์ที่รอดิสก์หรือเครือข่าย IO (อินพุต / เอาต์พุต) เมื่อกระบวนการหยุดทำงานแบบไม่ต่อเนื่องสัญญาณที่สะสมระหว่างการพักจะสังเกตเห็นเมื่อกระบวนการส่งคืนจากการเรียกระบบหรือกับดัก

กระบวนการที่ถูกบล็อกในการเรียกของระบบอยู่ในโหมดสต็อปอินเทอร์รัปต์ซึ่งตามชื่อของมันบอกว่ามันไม่สามารถทำการอินเทอร์รัปต์ได้แม้โดยรูท

โดยปกติกระบวนการไม่สามารถปิดกั้น SIGKILL แต่เคอร์เนลรหัสสามารถและกระบวนการดำเนินการรหัสเคอร์เนลเมื่อพวกเขาเรียกการโทรของระบบในช่วงที่รหัสเคอร์เนลบล็อกสัญญาณทั้งหมด ดังนั้นหากการเรียกของระบบบล็อกไปเรื่อย ๆ อาจไม่มีทางที่จะฆ่ากระบวนการได้อย่างมีประสิทธิภาพ SIGKILL จะมีผลเมื่อใดก็ตามที่กระบวนการเรียกระบบเสร็จสมบูรณ์


2
ฉันคิดว่ากระบวนการนอนหลับแบบต่อเนื่องเท่านั้นที่สามารถบล็อก SIGKILL ได้ กระบวนการนอนหลับแบบขัดจังหวะสามารถทำได้เช่นกัน? ถ้าเป็นเช่นนั้นความแตกต่างระหว่างพวกเขาคืออะไร?
del

1
ทั้ง S และ D มีผลต่อเนื่องเนื่องจากความซับซ้อนเกินกว่าที่จะเขียนโปรแกรมในเคอร์เนลและเพราะในอดีตพวกเขาควรจะมีระยะเวลาสั้น ๆ เท่านั้น แม้ว่าเคอร์เนลมีการพัฒนาเพื่อรวม NFS และกรณีอื่น ๆ ที่อาจใช้เวลานานกว่านั้นการปิดกั้นเคอร์เนลที่รออยู่นั้นน่าเสียดายที่ไม่เคยยกเลิก
harrymc

3
น่าสนใจ คุณมีข้อมูลอ้างอิงเกี่ยวกับเรื่องนี้หรือไม่? ทุกสิ่งที่ฉันสามารถค้นพบได้จาก Google ดูเหมือนว่ากระบวนการที่ขัดจังหวะไม่ควรเพิกเฉย SIGKILL
del

1
ดูเหมือนว่าจะขัดแย้งกับทุกสิ่งทุกอย่างที่ฉันได้อ่านเกี่ยวกับการนอนหลับที่ขัดจังหวะและฉันสงสัยเล็กน้อยว่าฉันได้สะดุดกับพฤติกรรมที่ไม่มีเอกสาร เช่นตรวจสอบ 2 ลิงค์ต่อไปนี้ ฉันเข้าใจอะไรผิดไปหรือเปล่า? (1) "ในโหมดสลีปขัดจังหวะกระบวนการอาจถูกปลุกให้ประมวลผลสัญญาณ" (2) "หากสัญญาณถูกสร้างขึ้นสำหรับกระบวนการในสถานะนี้การดำเนินการจะถูกขัดจังหวะและกระบวนการจะถูกปลุกด้วยการส่งสัญญาณ"
del

1
การเรียกของระบบขัดจังหวะหรือไม่ขึ้นอยู่กับวิธีการตั้งโปรแกรม เมื่อหนึ่งอยู่ภายในเคอร์เนลทุกอย่างก็จะไป
harrymc

10

พื้นหลังในกระบวนการนอนหลับ

คุณอาจต้องการดูโพสต์ Unix & Linux นี้

โดยเฉพาะคำตอบนี้/unix//a/5648/7453

ตัดตอนมาจากโพสต์นั้น

kill -9 (SIGKILL) ใช้งานได้เสมอหากคุณได้รับอนุญาตให้ฆ่ากระบวนการ โดยพื้นฐานแล้วทั้งกระบวนการจะต้องเริ่มจากคุณและไม่ใช่ setuid หรือ setgid หรือคุณต้องเป็นรูท มีข้อยกเว้นหนึ่งข้อ: แม้แต่ root ไม่สามารถส่งสัญญาณที่ร้ายแรงถึง PID 1 (กระบวนการเริ่มต้น)

อย่างไรก็ตาม kill -9 ไม่รับประกันว่าจะทำงานได้ทันที สัญญาณทั้งหมดรวมถึง SIGKILL นั้นจะส่งมอบแบบอะซิงโครนัส: เคอร์เนลอาจใช้เวลาในการส่งสัญญาณ โดยปกติแล้วการส่งสัญญาณจะใช้เวลาไม่เกินสองสามไมโครวินาทีเพียงเวลาที่เป้าหมายใช้เพื่อให้ได้ชิ้นเวลา อย่างไรก็ตามหากเป้าหมายบล็อกสัญญาณสัญญาณจะถูกจัดคิวจนกว่าเป้าหมายจะปลดล็อค

โดยปกติกระบวนการไม่สามารถปิดกั้น SIGKILL แต่รหัสเคอร์เนลสามารถและกระบวนการรันรหัสเคอร์เนลเมื่อพวกเขาเรียกการโทรของระบบ รหัสเคอร์เนลบล็อกสัญญาณทั้งหมดเมื่อขัดจังหวะการเรียกระบบจะส่งผลให้เกิดโครงสร้างข้อมูลที่ไม่ดีที่ใดที่หนึ่งในเคอร์เนลหรือโดยทั่วไปในเคอร์เนลบางค่าคงที่ถูกละเมิด ดังนั้นหาก (เนื่องจากข้อผิดพลาดหรือการออกแบบผิดพลาด) การเรียกระบบบล็อกอย่างไม่มีกำหนดอาจไม่มีทางที่จะฆ่ากระบวนการได้อย่างมีประสิทธิภาพ (แต่กระบวนการจะถูกฆ่าหากการเรียกระบบเสร็จสิ้น)

...

...

ฉันขอแนะนำให้อ่านคำตอบที่เหลือ!

ฆ่ากระบวนการที่ถูกบล็อกโดยทรัพยากร (ไฟล์หรือเครือข่าย)

ลองทำสองสิ่งต่อไปนี้

1. การลบไฟล์. pid ของ yum

มีไฟล์ล็อค yum อยู่หรือไม่ จะเกิดอะไรขึ้นเมื่อคุณลบไฟล์ล็อคนั้น ฉันคิดว่าอาจอนุญาตให้ดำเนินการต่อ

rm /var/run/yum.pid

2. บังคับให้CLOSE_WAITปิดการเชื่อมต่อ TCP ที่หยุดทำงาน

CLOSE_WAITอธิบายไว้ดังนี้:

CLOSE_WAIT บ่งชี้ว่าเซิร์ฟเวอร์ได้รับสัญญาณ FIN แรกจากไคลเอ็นต์และการเชื่อมต่ออยู่ในกระบวนการของการปิด

ดังนั้นนี่คือหมายความว่าเขาเป็นสถานะที่ซ็อกเก็ตกำลังรอให้แอปพลิเคชันดำเนินการปิด ()

ซ็อกเก็ตสามารถอยู่ในสถานะ CLOSE_WAIT ไปเรื่อย ๆ จนกว่าแอปพลิเคชันจะปิด สถานการณ์ที่ผิดพลาดจะเป็นเหมือนการรั่วไหลของไฟล์ฟ้อง, เซิร์ฟเวอร์ไม่ได้ถูกเรียกใช้งาน close () บนซ็อกเก็ตที่นำไปสู่การปิดซ็อกเก็ตของ close_wait

หมายเหตุ:ข้อความที่ตัดตอนมาจากเว็บไซต์ TechNet

มี 2 ​​เครื่องมือที่คุณสามารถลองใช้เพื่อทำสิ่งนี้ให้สำเร็จ

เครื่องมือเหล่านี้ทำงานโดยจำลองการแลกเปลี่ยนFIN-ACK-RSTที่จำเป็นสำหรับการปิดการเชื่อมต่อ TCP อย่างสมบูรณ์

Killcx ทำงานโดยการสร้างปลอมแพ็คเก็ต SYN ด้วยปลอม SeqNum ปลอมแปลง IP / พอร์ตลูกค้าระยะไกลและส่งไปยังเซิร์ฟเวอร์ มันจะแยกกระบวนการลูกที่จะจับการตอบสนองของเซิร์ฟเวอร์แยกค่าเวทย์มนตร์ 2 จากแพ็คเก็ต ACK และใช้พวกเขาในการส่งแพ็คเก็ต RST ปลอมแปลง การเชื่อมต่อจะถูกปิด

หมายเหตุ:ข้อความที่ตัดตอนมาจากเว็บไซต์ Killcx

การใช้มีด

ตัดการเชื่อมต่อเฉพาะระหว่างคู่สองหมายเลข ip / พอร์ตที่กำหนด

# cutter ip-address-1 port-1 ip-address-2 port-2
% cutter 200.1.2.3 22 10.10.0.45 32451

ใช้ Killcx

ตัดการเชื่อมต่อกับ ip และพอร์ตระยะไกล

# killcx remote-ip-address:port
% killcx 120.121.122.123:1234

ทรัพยากร


การลบไฟล์ล็อคไม่มีผล
del

1
นี่เป็นเครื่องที่ใช้งานจริงและเครื่องมือสองอย่างนี้มีการพึ่งพาซึ่งฉันไม่สามารถติดตั้งได้ ฉันลอง /etc/init.d/networking การรีสตาร์ทและมันก็ไม่ได้ทำอะไรเลย จริงๆแล้วตอนนี้ฉันสนใจที่จะเข้าใจว่าทำไมสิ่งนี้ถึงเกิดขึ้นได้ (เนื่องจากฉันไม่คิดว่ากระบวนการนอนหลับแบบขัดจังหวะสามารถเพิกเฉย SIGKILL) ได้มากกว่าที่ฉันจะแก้ไขปัญหานี้ได้
del

การรีสตาร์ทเครือข่ายจะมีผลเช่นเดียวกันดังนั้นการปิดกั้น I / O หากในความเป็นจริงกระบวนการนี้กำลังรออยู่ที่อื่น
slm

1

คุณสามารถลองฆ่ากระบวนการผู้ปกครอง ใช้ ps เพื่อตรวจสอบ:

ps xjf -C yum

จากนั้นkill -9กระบวนการแม่ใด ๆ


กระบวนการหลักคือ init (คอลัมน์ที่ 5 ในผลลัพธ์ของฉัน)
เดล

1

มันอาจคุ้มค่าที่จะแนบกับกระบวนการด้วย strace เพื่อดูว่ามันว่างเปล่าหรือติดอยู่กับการปฏิบัติการ IO อาจให้เบาะแสเพิ่มเติมกับปัญหาที่อาจเกิดขึ้น

strace -pPID

จากสิ่งที่ฉันได้อ่านไม่มีทางที่จะฆ่ากระบวนการนี้นอกจากการรีบูต หากกระบวนการไม่ใช้เวลา cpu ที่สังเกตเห็นได้ก็ไม่น่าจะสร้างผลกระทบเชิงลบใด ๆ กับเซิร์ฟเวอร์


ขอบคุณสำหรับข้อเสนอแนะ แต่กระบวนการหลักคือเริ่มต้น (ดูคอลัมน์ที่ 5 ในผลลัพธ์ของฉัน)
del

คำตอบที่ได้รับการแก้ไขของคุณอีกครั้ง strace จะแนบกับกระบวนการ แต่จะไม่แสดงผลลัพธ์ใด ๆ
del

1

เป็นไปได้ไหมว่ามันกำลังรอกระบวนการลูก ฉันรักps fauxเพราะมันจะบอกคุณว่ามีกระบวนการเด็กหรือไม่และถ้าซึ่งคุณอาจต้องฆ่า


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