프로세스를 시작한 다음 이진 파일을 삭제해도 다음에서 복구 할 수 있습니다 /proc/<pid>/exe
.
$ cp `which sleep` .
$ ./sleep 10m &
[1] 13728
$ rm sleep
$ readlink /proc/13728/exe
/tmp/sleep (deleted)
$ cp /proc/13728/exe ./sleep-copy
$ diff sleep-copy `which sleep` && echo not different
not different
$ stat /proc/13728/exe
File: ‘/proc/13728/exe’ -> ‘/tmp/sleep (deleted)’
Size: 0 Blocks: 0 IO Block: 1024 symbolic link
반면에 직접 심볼릭 링크를 만들면 대상을 삭제하고 복사를 시도하십시오.
cp: cannot stat ‘sleep’: No such file or directory
/proc
커널에 대한 인터페이스입니다. 그렇다면이 심볼릭 링크는 실제로 메모리에로드 된 사본을 가리 키지 만보다 유용한 이름이 있습니까? 어떻게합니까 exe
링크 작업은 정확히?
proc_exe_link()
은proc
파일 시스템에 존재합니다 : lxr.free-electrons.com/source/fs/proc/base.c?v=4.0#L1350