知道应用程序的名称和命令行参数来终止应用程序

知道应用程序的名称和命令行参数来终止应用程序

如果我运行某个应用程序的单个实例,我可以通过“kill my_app_name”来终止它,而不必找出它的 PID 是什么。但是当我运行该应用程序的多个实例时相同的应用不同的命令行参数,我怎样才能以同样的方式杀死它:而不必搜索它的 PID?通过它的名称和命令行参数。

答案1

要终止一个进程,您必须以某种方式搜索 PID,因为 Linux 内核将根据进程的 PID 向其发送信号。

您的kill my_app_name代码之所以有效,是因为 bash 的内部版本kill接受一个字符串,搜索相应的进程,并向找到的进程发送 kill 信号(如果只有一个进程与搜索相对应)。如您所说,如果有多个进程,它将不起作用。

如果您不想手动搜索进程列表或编写脚本来执行此操作,则至少有两个辅助程序可以为您完成此操作:pkillkillall

例如,pkill -TERM -f 'my_app_name .*myarg'应该终止命令行中包含“myarg”的应用程序实例。您可以使用它pgrep -a -f 'my_app_name .*myarg'来确保您拥有正确的进程。

相关内容