debug記錄

看板Marginalman作者 ( )時間1年前 (2024/08/07 04:17), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
之前遇到 log 檔意外被刪掉了 但 process 還在跑的情況 我就好奇那他現在是能寫到哪 靈機一動跑到 /proc/<PID>/fd 底下看 發現長成下面這樣   1 -> '原路徑 (deleted)' 然後我用 vim 去開、竟然也開的起來 還能看到一直有東西正被寫進去 覺得奇怪 symbolic link 不是只存路徑嗎 這樣 (deleted) 也行喔 查了一下是 procfs 的特異功能 這下舊 log 是看得到了 可是 process 還在跑 是能一直 cp 搬出來但感覺挺蠢的 停 process 的話也很可能會漏最後一段 log 所以我就想  既然都摸的到了 那我 hard link 他一下不就復活了嗎 試下去之後失敗了 再查發現 Linux 有特意禁止這件事 fs: Don't allow to create hardlink for deleted file https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/ commit/?id=aae8a97d3ec30788790d1720b71d76fd8eb44b73 所以刪光了就不能創 hard link 了 好像跟權限管理有關不過我沒研究具體原因 最後就還是重開了 雖然有想過可能可以用 ptrace 搞點事 不過漏 log 事小 要是寫爛搞到 process 發瘋就糟了 -- https://i.imgur.com/Dqgtk4P.gif
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.77.61.242 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1722975422.A.202.html
文章代碼(AID): #1cieI-82 (Marginalman)