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

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

6
ทางเลือกสำหรับคำสั่ง“ lsof”?
ในหลายกรณี "lsof" ไม่ได้ติดตั้งบนเครื่องที่ฉันต้องทำงาน แต่ "function" ของ lsof จะต้องใช้อย่างมาก (เช่นบน AIX) : \ มีแอปพลิเคชั่น "lsof" ใด ๆ ในโลกที่ไม่ใช่หน้าต่างหรือไม่? อัปเดต: สำหรับตัวอย่าง: ฉันจำเป็นต้องรู้ว่ากระบวนการใดใช้ไดเรกทอรี "/ home / ชื่อผู้ใช้"?

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

2
ทางเลือก iotop สำหรับผู้ใช้ที่ไม่ใช่รูทโดยไม่มีสิทธิ์ sudo
ฉันกำลังมองหาทางเลือกกับไอโซโทป นี่คือสถานการณ์ของฉัน: ฉันต้องการตรวจสอบว่าโปรแกรมกำลังเข้าถึงฮาร์ดไดรฟ์จำนวนมากในขณะใช้งานหรือไม่ iotop ต้องการสิทธิ์รูท / sudo บัญชีของฉันอยู่ในระบบของคนอื่นดังนั้นฉันจึงไม่ได้รับอนุญาตให้ใช้สิทธิ์ root หรือ sudo มีทางเลือกอื่นในไอโซโทปที่ฉันสามารถใช้ได้หรือไม่?

1
ps พิมพ์ได้สูงสุด 4096 ตัวอักษรของบรรทัดคำสั่งของกระบวนการใด ๆ
เมื่อฉัน grep สำหรับกระบวนการ java ฉันได้รับด้านล่างเอาท์พุท แต่มัน จำกัด อยู่ที่ 4096 ตัวอักษรซึ่งเป็นผลให้ชื่อกระบวนการจริง (ซึ่งเป็น kafka.Kafka) ไม่ได้แสดงในgrepเอาท์พุท นี่เป็นข้อ จำกัด ของ grep หรือไม่? มีวิธีการพิมพ์อักขระเกินขีด จำกัด 4096 หรือไม่? ps -ef | grep java java -Xmx6G -Xms6G -server -XX: + UseG1GC -XX: MaxGCPauseMillis = ka / kka-20 ข้อมูล -XX: InitiatingHeapOccupancyPercent = 35 -XX: + DisableExplicitGC -Djava.awt.headless -logs …

1
ทำไม file-nr และ lsof ถึงมีความแตกต่างกัน? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Unix & Linux Stack Exchange ปิดให้บริการใน3 ปีที่ผ่านมา ฉันกำลังเจอปัญหาทันทีทันใด; แอปพลิเคชันทั้งหมดและเซิร์ฟเวอร์ของฉันทำงานได้ดีและในทันใดฉันเห็นจำนวนไฟล์ที่เปิดค้าง ฉันกำลังตรวจสอบมันด้วยคำสั่งนี้: cat /proc/sys/fs/file-nr เมื่อฉันตรวจสอบสิ่งนี้มันจะแสดง44544 0 128000ดังนั้น 44544 คือจำนวนไฟล์ที่เปิด แต่เมื่อฉันตรวจสอบด้วยคำสั่งนี้ - lsof | wc -l มันแสดง - 28384 แล้วอันไหนที่ถูกต้อง? ขีด จำกัด สูงสุดสำหรับการเปิดไฟล์ของฉันคือ 65535 ulimit -a open files (-n) 65535 ฉันต้องการทราบกระบวนการ 5 อันดับแรกที่ใช้ไฟล์ที่เปิดมากขึ้น ฉันสามารถรับได้จากนี้lsofแต่จำนวนที่แสดงที่นี่แตกต่างจากคำสั่งอื่น ๆ ที่ฉันได้กล่าวไว้ข้างต้น ฉันสามารถรับรายละเอียดของกระบวนการที่นับได้ด้วยคำสั่งนี้cat /proc/sys/fs/file-nrหรือไม่? …

2
จะทราบได้อย่างไรว่ากระบวนการใดที่เขียนถึง STDOUT
ฉันมีกระบวนการทำงานสองกรณี หนึ่งในนั้นคือ "frEAkIng oUT!" และข้อผิดพลาดการพิมพ์ไม่หยุดที่ STDOUT ฉันต้องการฆ่ากระบวนการที่เสียหาย แต่ฉันต้องทำให้แน่ใจว่าฉันจะไม่ยุติกระบวนการที่ผิด พวกเขาทั้งคู่เริ่มต้นพร้อมกันและใช้topฉันสามารถเห็นพวกเขาทั้งคู่ใช้หน่วยความจำและ CPU ในปริมาณเท่ากัน ฉันไม่สามารถหาสิ่งใดที่ชี้ให้เห็นว่ากระบวนการใดที่ทำงานไม่ดี สิ่งที่ปลอดภัยที่สุดคือการพิจารณาว่ากระบวนการใด / pid ที่เขียนไปยัง STDOUT มีวิธีใดที่จะทำเช่นนั้น?

2
จะทราบสาเหตุของกระบวนการที่จะเข้าสู่โหมดสลีปและปลุกมันได้อย่างไร?
เมื่อฉันทำ 'บน' ฉันเห็นกระบวนการสคริปต์ของฉันในสถานะ 'S' มีวิธีที่จะรู้หรือไม่สิ่งที่ทำให้กระบวนการ perl นี้อยู่ในสถานะสลีปและวิธีที่จะปลุกมันขึ้นมา? วิธีใด ๆ ในการดีบักเพื่อให้ข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับบรรทัดในสคริปต์ Perl ทำให้มันอยู่ในสถานะ 'S'

2
/ proc / self ถูกนำไปใช้ใน Linux อย่างไร
ฉันกำลังยุ่งอยู่กับ/procระบบไฟล์ใน Linux และฉันเจอ/proc/selfซึ่งเป็นสัญลักษณ์เชื่อมโยงไปยังไดเรกทอรีกระบวนการของกระบวนการปัจจุบัน ฉันต้องการทราบวิธีการใช้งาน ทางออกหนึ่งคือการเปลี่ยน symlink นั้นในทุก ๆ context switchแต่เห็นได้ชัดว่ามันแพงมากเพราะมันเกี่ยวข้องกับการเข้าถึงดิสก์
19 process  proc 

4
ทางเลือกอื่นในการฆ่ากระบวนการซอมบี้
ฉันเพิ่งสังเกตเห็นกระบวนการซอมบี้ใน CentOS 6.8 (รอบชิงชนะเลิศ) พยายามฆ่าพวกเขา แต่พวกเขายังคงอยู่ที่นั่น: [root@host user]# ps -ef | grep git tomcat 746 1 0 Jul18 ? 00:00:00 git clone https://github.com/angular/bower-angular.git -b v1.3.20 --progress . --depth 1 tomcat 747 746 0 Jul18 ? 00:00:00 [git-remote-http] <defunct> root 20776 20669 0 09:03 pts/3 00:00:00 grep git tomcat 29970 1 …
19 process  kill 

5
การเปลี่ยนแปลงไฟล์การมอนิเตอร์ + การเข้าถึงไฟล์
ฉันต้องการที่จะเห็นสิ่งที่เกิดขึ้นในโฟลเดอร์เซิร์ฟเวอร์แอปของฉันคือไฟล์ใดบ้างที่ถูกเปลี่ยนแปลงโดยกระบวนการ x หรือ*.warไฟล์ใดที่มีการเปลี่ยนแปลง (แทนที่ / สร้าง) ในช่วง x นาทีสุดท้าย มีเครื่องมือใน Linux เพื่อช่วยในเรื่องนี้หรือไม่?

3
เคอร์เนล Linux มีกระบวนการเคอร์เนลจริง ๆ หรือไม่
ฉันอ่านในหลาย ๆ ที่ที่ Linux สร้างเคอร์เนลเธรดสำหรับแต่ละเธรดผู้ใช้ใน Java VM (ฉันเห็นคำว่า "kernel thread" ที่ใช้ในสองวิธีที่แตกต่างกัน: เธรดที่สร้างขึ้นเพื่อทำงานหลักของระบบปฏิบัติการและ เธรดที่ระบบปฏิบัติการทราบถึงและกำหนดเวลาเพื่อทำงานของผู้ใช้ ฉันกำลังพูดถึงประเภทหลัง) เคอร์เนลเธรดเหมือนกับกระบวนการเคอร์เนลเนื่องจากกระบวนการ Linux สนับสนุนพื้นที่หน่วยความจำที่แบ่งใช้ระหว่างพาเรนต์และชายด์หรือเป็นเอนทิตีที่แตกต่างกันอย่างแท้จริงหรือไม่?

2
เหตุใดจึงต้องเพิ่มวงเล็บล้อมรอบชื่อกระบวนการ
บนเครื่องของฉัน ( การทดสอบแบบเดเบียน ) เมื่อฉันทำ ps aux | grep pam ฉันได้รับ orto 609 0.0 0.0 58532 2148 ? S 08:06 0:00 (sd-pam) orto 5533 0.0 0.0 12724 1948 pts/1 S+ 16:51 0:00 grep pam (sd-pam)ดูเหมือนชื่อแปลก ๆ สำหรับกระบวนการ อ่านฟอรั่มนี้ฉันเห็นว่าชื่อนี้ตั้งอยู่บนวัตถุประสงค์โดย systemd ในซอร์สโค้ดที่เราเห็น /* The child's job is to reset the PAM session …
19 process  systemd 

5
ฉันจะรับเฉพาะ PID ที่ไม่มีข้อมูลเพิ่มเติมใด ๆ ของกระบวนการที่ทำงานบนพอร์ต 3000 ได้อย่างไร
ฉันใช้ CentOS 7 ฉันต้องการรับ PID (ถ้ามี) ของกระบวนการที่ทำงานบนพอร์ต 3000 ฉันต้องการรับ PID นี้เพื่อวัตถุประสงค์ในการบันทึกเป็นตัวแปรในเชลล์สคริปต์ จนถึงตอนนี้ฉันมี [rails@server proddir]$ sudo ss -lptn 'sport = :3000' State Recv-Q Send-Q Local Address:Port Peer Address:Port Cannot open netlink socket: Protocol not supported LISTEN 0 0 *:3000 *:* users:(("ruby",pid=4861,fd=7),("ruby",pid=4857,fd=7),("ruby",pid=4855,fd=7),("ruby",pid=4851,fd=7),("ruby",pid=4843,fd=7)) แต่ฉันไม่สามารถหาวิธีที่จะแยก PID ทั้งหมดได้ด้วยตัวเองโดยไม่มีข้อมูลเพิ่มเติมทั้งหมดนี้

4
วิธีการฆ่ากระบวนการด้วยคำสั่งเดียว?
ฉันต้องการฆ่ากระบวนการหลังจากค้นหารหัสในขั้นตอนเดียว ฉันใช้คำสั่งสองคำสั่งต่อไปนี้: pidof <name> kill <#number_which_is_result_of_command> ฉันจะเขียนคำสั่งเดียวเพื่อทำสิ่งนี้ได้อย่างไร

7
การใช้ซ็อกเก็ตเครือข่ายนี้คืออะไร
ฉันพยายามใช้ NTP เพื่ออัปเดตเวลาบนเครื่องของฉัน อย่างไรก็ตามมันทำให้ฉันมีข้อผิดพลาด: host # ntpdate ntp1.example.org 10 Aug 12:38:50 ntpdate[7696]: the NTP socket is in use, exiting ข้อผิดพลาด "ซ็อกเก็ตใช้งานอยู่" หมายถึงอะไร ฉันจะดูสิ่งที่ใช้ซ็อกเก็ตนี้ได้อย่างไร สิ่งนี้เกิดขึ้นในระบบ CentOS 4.x ของฉัน แต่ฉันเห็นบน FreeBSD 7.x, Ubuntu 10.04 และ Solaris 10

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