如何在 Linux 上的程序集中找到程序进程 ID 号以自动终止程序?

How do I find the program process id number to kill program automatically in assembly on Linux?

通过这个,我可以找到程序的进程ID号:

ps -auwx | grep vlc | awk '{print}' | head -n 1

在汇编程序中,如何动态查找进程号?

section .text
global _start
_start:
      mov rax,62 ; syscall for kill
      mov rdi,5265 ; pid of vlc media player
      mov rsi,9 ;signal
      syscall
      mov rax,60
      mov rdi,0
      syscall

这样做很乏味。您需要做的是遍历 /proc 文件系统,读取每个进程的 cmdline 文件以确定您感兴趣的进程。您可能还需要实现某种字符串匹配程序,因此您可以匹配 /usr/bin/vlc 以及 vlc.

有关文档,请参阅 proc(5)