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?
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
—
AFH
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
).
$(pidof jetty92.state)
. Nếu bạn đặtJETTYPID
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ạyjstack
.