Có thể truyền một biến PID làm tham số vào crontab không?


0

Có thể chuyển một biến PID làm tham số vào crontab:

0 * * * * JETTYPID=$(ps aux | grep "jetty92.state" | grep -v grep | awk '{print $2}')

HOẶC LÀ

Tôi chỉ có thể định nghĩa biến ở đầu crontab như vậy:

JETTYPID=$(ps aux | grep "jetty92.state" | grep -v grep | awk '{print $2}')

Để nắm bắt một PID và sau đó chạy một cron bên dưới và sử dụng giá trị biến đó trong lệnh

0 * * * * ~/jetty_trace.sh $JETTYPID

Mục tiêu là lưu trữ PID hiện tại cho cầu tàu vào biến đó và sau đó sử dụng biến đó làm đối số cho một kịch bản chạy (tóm lại)

jstack -F <PID> >> stacktrack.log

Nhưng với một loạt các định dạng ngày / thời gian. Điều này có thể không?


Bạn đang sử dụng một thay thế rất dài để $(pidof jetty92.state). Nếu bạn đặt JETTYPID bất cứ nơi nào khác ngoài chuỗi chạy, thì bạn không thể chắc chắn rằng nó chưa được cập nhật trước khi bạn chạy jstack.
AFH

Thật tốt khi biết có cách nào dễ dàng hơn. Cảm ơn :)
Alex Lorsung

Tại sao không kết hợp mã này vào jstack chính nó, để bạn crontab mục đơn giản trở thành jstack >> stacktrack.log? Hoặc, nếu bạn không thể sửa đổi jstack, sau đó gọi một mặt trước trong crontab, ví dụ pjstack >> stacktrack.log, Ở đâu pjstack xác minh rằng JETTYPID=$(pidof jetty92.state) giữ một PID đơn, hợp lệ, sau đó chạy exec jstack -F $JETTYPID (không chuyển hướng, vì điều này đã được thực hiện trong crontab ).
AFH
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.