ฉันต้องการเริ่มต้นกระบวนการที่ไม่ทำอะไรเลย แต่ยังคงทำงานอยู่ ว่าฉันเริ่มกระบวนการที่เรียกว่าsadhadxk
และเมื่อฉันเรียกใช้pgrep -x "sadhadxk"
ฉันจะได้รับหมายเลข PID กลับเช่นกระบวนการปกติใด ๆ ทำงาน
ดังนั้นมีวิธีใดบ้างที่จะเริ่มกระบวนการหลอกตา?
ฉันต้องการเริ่มต้นกระบวนการที่ไม่ทำอะไรเลย แต่ยังคงทำงานอยู่ ว่าฉันเริ่มกระบวนการที่เรียกว่าsadhadxk
และเมื่อฉันเรียกใช้pgrep -x "sadhadxk"
ฉันจะได้รับหมายเลข PID กลับเช่นกระบวนการปกติใด ๆ ทำงาน
ดังนั้นมีวิธีใดบ้างที่จะเริ่มกระบวนการหลอกตา?
คำตอบ:
คุณสามารถทำได้:
perl -MPOSIX -e '$0="sadhadxk"; pause' &
มันควรจะตั้งค่าทั้งชื่อกระบวนการและ argv [0] ในระบบที่มันได้รับการสนับสนุนดังนั้นควรจะแสดงsadhadxk
ทั้งในps
และps -f
ส่งออกจึงควรได้รับการจับคู่โดยทั้งสองและpgrep -x
pgrep -fx
> bash -c 'exec -a sadhadxk sleep 1000000' &
pgrep
ไม่ทำงาน แต่
> ps | grep '[s]adhadxk'
18931 [...] sadhadxk 1000000
การแก้ไข: pgrep
ใช้งานได้ แต่ไม่ทำงานกับชื่อคำสั่ง (ซึ่งเป็นชื่อของไบนารีที่รันอยู่) เฉพาะกับบรรทัดคำสั่ง:
> pgrep -f sadhadxk
18931
ลองทำสิ่งนี้:
sleep 600 &