คำถามติดแท็ก process

กระบวนการเป็นตัวอย่างของโปรแกรมคอมพิวเตอร์ที่กำลังดำเนินการ

3
ฉันเห็นจำนวนมากกว่า 400,000 ที่เป็นสาเหตุ มันบ่งบอกว่ามีบางอย่างผิดปกติหรือไม่?
วันนี้ฉันเพิ่งสังเกตว่ารหัสกระบวนการของฉันสูงมากใน 400,000 (เช่น 449624) เมื่อฉันวิ่งps -ef | moreนั่นคือเมื่อฉันสังเกตเห็นมัน เป็นเรื่องปกติหรือไม่หรือที่บ่งบอกถึงปัญหา มิฉะนั้นสคริปต์จะทำงานได้ดี ฉันใช้ Redhat 7.3 x64 บิต อีกสิ่งหนึ่งที่ฉันสังเกตเห็นคือเรายังมี Redhat 7.2 และ pids นั้นไม่สูงเพียงแค่ระบบปฏิบัติการรุ่นใหม่ ทำไมถึงเป็นเช่นนั้น? มันหมายความว่ามันเกี่ยวข้องกับระบบปฏิบัติการและปกติหรือไม่? ผมไม่ได้ว่าในของฉันkernel_pid_max sysctl.confฉันวิ่งแมวและฉันเห็น/proc/sys/kernel/pid_max458752
14 process 

1
ส่งคืนเจ้าของกระบวนการที่ได้รับ PID
ฉันพยายามที่จะคว้าเจ้าของกระบวนการจากรายการฉันมีคำสั่งpidof nmapเพื่อให้ได้สิ่งps -u <PID> | grep USERที่ฉันกำลังเล่นด้วย แต่เมื่อฉันเรียกใช้มันจะจบลงด้วยการพิมพ์ชื่อเรื่อง (บรรทัดบนสุด) ฉันจะคว้าชื่อเจ้าของที่ให้รหัสกระบวนการได้อย่างไร

1
ทำไมฉันไม่ควรใช้ 'kill -9' / SIGKILL
การโพสต์คำถามนี้เพราะฉันรู้สึกประหลาดใจที่ไม่พบคำตอบโดยตรง ขอโทษถ้านี่เป็นสิ่งที่ซ้ำ - ฉันดู! ฉันเคยได้ยินสิ่งนั้นkill -9หรือkill -SIGKILLไม่ดี แต่ฉันไม่เข้าใจว่าทำไม ถ้าฉันไม่ควรkill -9สิ่งที่ควรฉันทำเพื่อฆ่ากระบวนการหรือไม่?
14 process  kill 

1
กระบวนการลบเครื่องหมายบวก
คำสั่งเหล่านี้กำลังทำงานในพื้นหลัง: foo @ contoso ~ $ sleep 30 & foo @ contoso ~ $ sleep 60 & foo @ contoso ~ $ sleep 90 & เครื่องหมายลบและเครื่องหมายบวกหลังจากเรียกใช้กระบวนการงานคืออะไร foo @ contoso ~ $ jobs [1] นอนหลับ 30 & [2] - นอนหลับ 60 & [3] + นอนหลับ 90 &

4
โปรดอธิบายผลลัพธ์ของคำสั่ง ps -ef นี้หรือไม่
ส่วนหนึ่งของเอาท์พุทจากps -efคำสั่งที่ได้รับด้านล่าง: UID PID PPID C STIME TTY TIME CMD root 1 0 0 2012 ? 00:00:01 init [3] root 2 1 0 2012 ? 00:00:01 [migration/0] root 3 1 0 2012 ? 00:00:00 [ksoftirqd/0] root 4 1 0 2012 ? 00:00:00 [watchdog/0] root 5 1 0 2012 ? 00:00:00 …

1
ปุ่ม“ ฆ่ากระบวนการที่ใหญ่ที่สุด”
แล็ปท็อปนี้มี SSD ดังนั้นฉันจึงตัดสินใจไม่เปลี่ยน วิธีนี้ใช้งานได้ดีในกรณีส่วนใหญ่ แต่บางครั้ง RAM ก็ค่อนข้างสั้นและคอมพิวเตอร์ก็ซบเซาและมีแนวโน้มที่จะแข็งตัว มีวิธีการใช้ปุ่ม "ฆ่ากระบวนการที่ใหญ่ที่สุด" ที่ตรงไปยังเคอร์เนลในกรณีที่ฉันสังเกตเห็นการตรึงเร็วพอ? หรือเพราะเป็นคอมพิวเตอร์ฮิวริสติกเมื่อมันเริ่มแข็งตัวและถ่ายทำกระบวนการที่ใหญ่ที่สุดก็จะใช้ได้เช่นกัน
14 process 

2
ทำไม SSH ไม่รอกระบวนการพื้นหลัง
ทำไมมันssh -tไม่รอให้งานพื้นหลังเสร็จ? ตัวอย่าง: ssh user@example 'sleep 2 &' ใช้งานได้ตามที่คาดไว้เนื่องจาก ssh กลับมาหลังจาก 2 วินาทีในขณะที่ ssh user@example -t 'sleep 2 &' ไม่รอsleepให้เสร็จและส่งคืนทันที ทุกคนสามารถอธิบายเหตุผลที่อยู่เบื้องหลังสิ่งนี้ได้ไหม มีวิธีssh -tรอกระบวนการพื้นหลังทั้งหมดให้เสร็จก่อนที่จะส่งคืนหรือไม่ กรณีการใช้งานของฉันคือฉันเริ่มต้นสคริปต์ด้วยssh -tและสคริปต์นี้เริ่มงานพื้นหลังต่าง ๆ ที่ควรมีชีวิตอยู่หลังจากสคริปต์หลักเสร็จสิ้น ด้วยssh -tสิ่งนี้เป็นไปไม่ได้จนถึงตอนนี้

2
มีวิธีใดบ้างที่เชลล์สคริปต์จะรู้ว่าโปรแกรมใดทำงานหรือไม่
ใน * nix world มีวิธีใดที่เชลล์สคริปต์จะมีข้อมูลเกี่ยวกับโปรแกรมที่เรียกใช้งานหรือไม่ ตัวอย่าง: /path/to/script1 /path/to/script_xyz ในสถานการณ์สมมตินี้script_xyzจะมีข้อมูลเส้นทาง ( /path/to/script1) หรือ ประมวลผล PID ของนิติบุคคลที่ได้ดำเนินการ หมายเหตุ: ฉันอยากรู้เกี่ยวกับการแก้ปัญหาและแนวทางที่แตกต่างกันฉันไม่คาดหวังว่าสิ่งนี้จะเป็นไปได้จริง

1
ทำไมบางโปรแกรมกลับสู่เชลล์ทันทีขณะที่บางโปรแกรมไม่ทำจนกว่าการประมวลผลจะเสร็จสมบูรณ์?
ฉันได้อ่านจากหนังสือระบบปฏิบัติการสมัยใหม่ว่าเมื่อคำสั่งถูกเรียกใช้เชลล์จะสร้างกระบวนการลูกรอจนกระทั่งลูกประมวลผลเสร็จสิ้นแล้วจึงรอคำสั่งอื่นจากผู้ใช้ geditแท้จริงนี่คือกรณีที่หลายโปรแกรมเช่น geditขั้วไม่ได้ใช้คำสั่งจนกว่าฉันจะได้ปิด อย่างไรก็ตามเมื่อฉันเปิดตัวแก้ไขรหัสatomเชลล์จะคืนค่าทันทีพร้อมที่จะยอมรับคำสั่งถัดไปแม้จะมีตัวแก้ไขที่ทำงานอยู่ การปิดเทอร์มินัลไม่ได้ปิดอะตอม นี่หมายความว่าตัวแก้ไขเปิดไม่เป็นกระบวนการลูกหรือไม่? กลไกพื้นฐานที่ทำให้สิ่งนี้เป็นไปได้คืออะไร? วิ่งps au | grep atomให้ <username> 8042 0.0 0.0 15944 2264 pts/1 S+ 00:55 0:00 grep --color=auto atom

2
ทำไมกระบวนการ / โปรแกรมกลายเป็นซอมบี้?
หากสคริปต์ทำงานได้ดีจากบรรทัดคำสั่งทำไมสคริปต์เดียวกันกลายเป็นสถานะซอมบี้หลังจากทำงานผ่าน cron และคุณจะแก้ไขปัญหาเดียวกันได้อย่างไร นี่คือตัวอย่างจริง: [root@abc ~]# ps ax | grep Z 23880 ? Zs 0:00 [checkloadadv.sh] <defunct> 23926 pts/0 S+ 0:00 grep Z [root@abc ~]# strace -p 23880 attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted [root@abc ~]# pstree | grep checkload init-+-crond---crond-+-checkloadadv.sh [root@abc ~]# bash /usr/bin/checkloadadv.sh System Load is OK : …

1
รับรายการกระบวนการสำหรับเด็กอย่างหรูหรา
ฉันต้องการรับรายการกระบวนการทั้งหมดที่ผู้ปกครองเป็น $ pid นี่เป็นวิธีที่ง่ายที่สุดที่ฉันเคยทำ: pstree -p $pid | tr "\n" " " |sed "s/[^0-9]/ /g" |sed "s/\s\s*/ /g" มีคำสั่งหรือวิธีที่ง่ายกว่าในการรับรายการกระบวนการลูกหรือไม่? ขอบคุณ!
13 process  ps 

4
อะไรคือความแตกต่างระหว่างการรันโปรแกรมที่เรียกใช้โดยชื่อและต่อท้ายจุด / สแลชก่อนหน้า?
นี่คือผลลัพธ์จากls -allคำสั่ง: -rwxr----- 1 subhrcho dba 3600 Nov 13 17:26 jdev -rw-r----- 1 subhrcho dba 1566 Nov 13 17:26 jdev-Darwin.conf -rw-r----- 1 subhrcho dba 347 Mar 6 2009 jdev-debug.boot -rw-r----- 1 subhrcho dba 821 Nov 13 17:26 jdev-logging-debug.conf -rw-r----- 1 subhrcho dba 584 Nov 13 17:26 jdev-logging.conf -rw-r----- 1 subhrcho …
13 process  command 

1
โปรแกรมที่เป็นเจ้าของรูทพร้อม setuid bit on
Ping เป็นโปรแกรมที่ root เป็นเจ้าของพร้อมชุด id ผู้ใช้ $ ls -l `which ping` -rwsr-xr-x 1 root root 35752 Nov 4 2011 /bin/ping ตามที่ฉันเข้าใจแล้วหากผู้ใช้รันกระบวนการ ping ดังนั้น id ผู้ใช้ที่มีประสิทธิภาพจะเปลี่ยนจาก id ผู้ใช้จริง (เช่น id ผู้ใช้ของบุคคลที่เปิดตัวกระบวนการ) เป็นรูท id ของผู้ใช้ อย่างไรก็ตามเมื่อฉันลองและดูผลลัพธ์ของ ps เพื่อดูว่ากระบวนการ ping ทำงานในฐานะผู้ใช้รูทฉันยังคงได้รับ ID ผู้ใช้จริงที่แสดง ps -e -o user,ruser,euser,cmd,args | grep ping sashan sashan sashan …

1
วิธีการหยุดชั่วคราวและดำเนินการต่อกระบวนการอย่าง bash
คำถามนี้เป็นคำถามต่อไปนี้: วิธีหยุดชั่วคราวและดำเนินกระบวนการต่อ ฉันเริ่ม Firefox จากการทุบตีเซสชันใน gnome-terminal แผนผังกระบวนการมีลักษณะดังนี้: $ ps -e -o pid,ppid,cmd -H 1828 1 gnome-terminal 26677 1828 bash 27980 26677 /bin/sh /usr/lib/firefox-3.6.15/firefox 27985 27980 /bin/sh /usr/lib/firefox-3.6.15/run-mozilla.sh /usr/lib/firefox-3.6.15/firefox-bin 27989 27985 /usr/lib/firefox-3.6.15/firefox-bin 28012 27989 /usr/lib/firefox-3.6.15/plugin-container /usr/lib/adobe-flashplugin/libflashplayer.so 27989 plugin true เมื่อฉันCTRL+Zทุบตีมันจะหยุด Firefox เมื่อฉันออกคำสั่งbg(หรือfg) มันจะกลับมาทำงานกับ firefox นี่คือที่คาดไว้ เมื่อฉันออกคำสั่งkill -s SIGTSTP 27980ในเทอร์มินัลอื่นมันจะพิมพ์บรรทัด[1]+ Stopped firefoxในเทอร์มินัลแรก …

1
จะเปิดใช้งาน PID แบบสุ่มบน Linux ได้อย่างไร
ขณะนี้ฉันกำลังเปรียบเทียบการใช้ PID แบบสุ่มใน OpenBSD, FreeBSD และ Linux จากมุมมองด้านความปลอดภัย ตราบใดที่ OpenBSD และ FreeBSD กังวลงานของฉันก็เสร็จสิ้น อย่างไรก็ตามในขณะที่คำตอบในที่นี้ระบุว่า PID แบบสุ่มสามารถเปิดใช้งานบน Linux ได้ด้วยการsysctlตั้งค่าฉันไม่สามารถกำหนดการตั้งค่าได้ งานวิจัยบนอินเทอร์เน็ตเพียงนำไปสู่การแพทช์และการอภิปรายปฏิเสธในหลักลินุกซ์เคอร์เนลและจะไม่ปรากฏในgrsecurityให้บริการอย่างใดอย่างหนึ่ง (และเห็นได้ชัดบน Linux กล่อง PIDs ของฉันมีเพิ่มขึ้นทุกที่ไม่มีsysctlชื่อพารามิเตอร์ที่ดูเหมือนเกี่ยวข้องและการค้นหาในไม่กี่คน แหล่งเคอร์เนลไม่ได้แสดงอะไรที่เกี่ยวข้อง) การสุ่ม PID พร้อมใช้งานบน Linux จริง ๆ หรือไม่

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