Tôi đang đặt một đường reaper vào một nhiệm vụ cào để tiêu diệt thêm một số nhiệm vụ ruby sinh ra thêm vào khi họ bằng cách nào đó leo lên nhân dịp.Làm thế nào để lấy PID của nhiệm vụ cào hiện tại?
system "ps aux | grep 'namespace:taskname' | grep ruby | grep -v grep | awk '{print $2}' | xargs kill -9; echo 'Reaped old namespace:taskname processes.'"
Tôi muốn thêm grep -v $PID_OF_CURRENT_TASK
vào đó để đảm bảo rằng tôi không giết tác vụ hiện tại đang chạy.
Làm cách nào để nhận được PID đó?
Bạn có thể thay thế toàn bộ đường ống với một cuộc gọi tốt soạn thảo của 'pkill' hoặc' killall', hoặc ít nhất là thay thế phần đầu của đường ống này với 'pgrep'. Các lệnh này an toàn hơn và dễ hiểu hơn đối với người đọc. – hagello