Kiểm tra PPID - ID của quy trình gốc. So sánh với cron pid; Nếu chúng giống nhau, nó được gọi bởi crontab.
này có thể được thực hiện bằng cách:
$ sudo ps -Af | grep cron | grep -v grep
root 6363 1 0 10:17 ? 00:00:00 /usr/sbin/cron
Các PID của tiến trình cron trong ví dụ này là 6363. Điều đáng nói đến là PPID của cron là 1-the init process.
Bây giờ tìm ra PID của chương trình python của bạn là gì:
$ sudo ps -Af | grep SorinSbarnea.py
adam 12992 6363 1 12:24 pts/2 00:04:21 /usr/bin/python SorinSbarnea.py
PID của nó là 12.992 và PPID là 6363, vì vậy nó đã thực sự gọi bởi quá trình cron.
EDIT:
Quá trình cron có thể không gọi quá trình của bạn trực tiếp. Do đó, bạn sẽ phải đi qua các PPID từ quá trình của bạn trở lên, cho đến khi đạt PPID = 1 hoặc PPID = /usr/sbin/cron
's PID. Điều này có thể dễ dàng được thực hiện bằng cách sử dụng một kịch bản shell hoặc python nhỏ; chỉ phân tích đầu ra của ps
:
$ cat /proc/12992/status
....
Pid: 12992
PPid: 7238
Uid: 1000 1000 1000 1000
Gid: 1000 1000 1000 1000
...
Bước tiếp theo sẽ là checkig/proc/7238, v.v. Một lần nữa, Điều này thực sự dễ thực hiện bằng cách sử dụng kịch bản lệnh shell hoặc python.
Xin cảm ơn, @digitalarbeiter và @Noufal Ibrahim đã chỉ ra điều đó trong nhận xét của bạn.
Nguồn
2010-01-18 15:17:56
tại sao bạn muốn biết điều này? – SilentGhost
Ví dụ tôi muốn thay đổi cách nó thực hiện đầu ra. Khi chạy từ thiết bị đầu cuối tôi muốn sử dụng màu thông qua trình tự thoát ANSI nhưng khi chạy từ thiết bị đầu cuối, tôi muốn văn bản thuần túy để nhận được email đẹp. – sorin
Sau đó kiểm tra thiết bị đầu cuối, không phải cho cron. – digitalarbeiter