以前,尝试修改正在运行的程序的可执行文件,将报错,返回,ETXTBSY 26 Text file busy
现在,这个限制已经去掉了。比如把cat拷贝出来,执行,然后,清空它。
~$ cp `which cat` .
~$ ./cat
然后在另外一个终端,清空cat,发现没有报错。
~$ > cat
回到执行cat的终端,按ctrl+D结束程序,cat将崩溃,并产生了core dump
~$ ./cat
Bus error (core dumped)
更多详细的,可以参考下面两个链接。可以修改可执行程序,这意味着,可以给程序打热补丁了。
参考:
The shrinking role of ETXTBSY,https://lwn.net/Articles/866493/
Remove in-tree usage of MAP_DENYWRITE,https://lwn.net/ml/linux-kernel/20210812084348.6521-1-david@redhat.com/