উত্তর:
সঙ্গে timeout
মধ্যে GNU coreutils
, আপনি করতে পারেন:
timeout 60 strace -p PID
এখানে একটি উদাহরণ।
test.sh
:
#!/bin/bash
while :; do
echo "$$"
sleep 100
done
চালাও এটা:
$ ./test.sh
27121
চালান strace
সঙ্গে timeout
:
% cuonglm at ~
% timeout 60 strace -p 27121
Process 27121 attached - interrupt to quit
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 27311
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, 0x7fff374b8598, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff) = 0
rt_sigaction(SIGINT, {0x45c4d0, [], SA_RESTORER, 0x7fcdc10e05c0}, {0x443910, [], SA_RESTORER, 0x7fcdc10e05c0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
write(1, "27121\n", 6) = 6
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fcdc1a699d0) = 27328
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {0x443910, [], SA_RESTORER, 0x7fcdc10e05c0}, {0x45c4d0, [], SA_RESTORER, 0x7fcdc10e05c0}, 8) = 0
wait4(-1,
1 মিনিটের পরে:
....
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fcdc1a699d0) = 27328
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {0x443910, [], SA_RESTORER, 0x7fcdc10e05c0}, {0x45c4d0, [], SA_RESTORER, 0x7fcdc10e05c0}, 8) = 0
wait4(-1, <unfinished ...>
Process 27121 detached
% cuonglm at ~
timeout
সর্বাধিক সাধারণ সমাধান বলে মনে হচ্ছে। কেবল টাইপ করুন timeout 60s command
এবং কমান্ডটি 60 সেকেন্ডের মধ্যে শেষ হবে। TERM
প্রোগ্রামটি ডিফল্টরূপে চলতে থাকলে এটি একটি প্রেরণ করবে । --signal
বিকল্পটি ব্যবহার করে আপনি যে সিগন্যালটি পেতে চান তা নির্দিষ্ট করতে পারেন ।
সময়কালটি সেকেন্ড, মিনিট, ঘন্টা বা দিনগুলিতে সেট করা যেতে পারে, তাদের প্রত্যেকের কী ব্যবহৃত হবে তা নির্ধারণের জন্য একটি নির্দিষ্ট প্রত্যয় রয়েছে।