linux: wait for process before detach, and send SIGCONT #1

已合併
jan 2022-08-18 23:38:31 -07:00 將 1 次代碼提交從 XeroOl/mem_edit:master 合併至 master
Contributor

Every once in a while, the ptrace call would fail because the process
has not yet stopped from SIGSTOP. From this stackoverflow answer, it
seems that you can use waitpid to wait until the process is actually
stopped. In python, this is exposed as os.waitpid.

https://stackoverflow.com/questions/20510300/ptrace-detach-fails-after-ptrace-cont-with-errno-esrch#20525326

Additionally, the process was left frozen. Sending a SIGCONT tells
the process to continue, undoing the effect of SIGSTOP. This means
that the process isn't frozen when detached.

Every once in a while, the ptrace call would fail because the process has not yet stopped from SIGSTOP. From this stackoverflow answer, it seems that you can use waitpid to wait until the process is actually stopped. In python, this is exposed as os.waitpid. https://stackoverflow.com/questions/20510300/ptrace-detach-fails-after-ptrace-cont-with-errno-esrch#20525326 Additionally, the process was left frozen. Sending a SIGCONT tells the process to continue, undoing the effect of SIGSTOP. This means that the process isn't frozen when detached.
XeroOl added 1 commit 2022-04-30 20:51:28 -07:00
I had issues with the ptrace call failing because the process had not yet stopped
from SIGSTOP.
From this stackoverflow answer, it seems that you can use waitpid to
wait until the process is actually stopped. In python, this is exposed
as os.waitpid.

https://stackoverflow.com/questions/20510300/ptrace-detach-fails-after-ptrace-cont-with-errno-esrch#20525326

Additionally, the process was left frozen. I send a SIGCONT to continue
the process after the detach, so that it isn't left stopped.
jan merged commit d49555ad15 into master 2022-08-18 23:38:31 -07:00
管理員

Thank you for the fix and explanation!

Thank you for the fix and explanation!
登入 才能加入這對話。
No Reviewers
未選擇標籤
未選擇里程碑
2 參與者
訊息
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jan/mem_edit#1
No description provided.