bash:在命令行参数中添加注释
我有一台RHEL机器,可以运行许多进程。许多过程可能具有等效的启动参数,因此从bash:在命令行参数中添加注释,bash,Bash,我有一台RHEL机器,可以运行许多进程。许多过程可能具有等效的启动参数,因此从top和ps来看,它们在这一类别中是相同的,不能相互识别 如何在流程的参数中命名或标记流程,以便能够相互识别?除了在bash中执行此操作外,对于Java进程或屏幕会话,我将如何执行此操作?如果我错了,请纠正我,但我认为您要查找的是别名。 请看这里:。我不知道如何使用程序的参数,但您可以通过将java硬链接(甚至是符号链接)到不同的名称并通过该名称调用它来实现 例如: gedit & gedit1=$! 在一个
top
和ps
来看,它们在这一类别中是相同的,不能相互识别
如何在流程的参数中命名或标记流程,以便能够相互识别?除了在bash中执行此操作外,对于Java进程或屏幕会话,我将如何执行此操作?如果我错了,请纠正我,但我认为您要查找的是别名。
请看这里:。我不知道如何使用程序的参数,但您可以通过将java硬链接(甚至是符号链接)到不同的名称并通过该名称调用它来实现 例如:
gedit & gedit1=$!
在一个终端中运行以下各项:
$ cd /tmp
$ ln -s /bin/cat abc
$ ln -s /bin/cat def
$ ./abc
在另一个终端运行中:
$ cd /tmp
$ ./def
$ ps aux | egrep 'abc\|def'
在第三个终端运行中:
$ cd /tmp
$ ./def
$ ps aux | egrep 'abc\|def'
您将看到一个进程名为“abc”,另一个进程名为“def”,两个进程都没有名称“cat”。因此,如果您这样做,为每个进程创建不同的链接,那么您就可以区分它们。您可以创建这样的脚本
#! /bin/bash
"$@"
假设您将其命名为过程标签
。您可以链接不同的名称
$ ln process-label other-label
你可以执行
$ process-label sleep 1800 &
$ other-label sleep 800 &
您将得到您的流程标签
15016 ttys002 0:00.00 /bin/bash ./process-label sleep 1800
15017 ttys002 0:00.00 sleep 1800
15021 ttys002 0:00.00 /bin/bash ./other-label sleep 800
15022 ttys002 0:00.00 sleep 800
实现这一点的标准方法是使用
$获取进程id代码>。这样,您就不会标记进程,但您有一个唯一标识它的id。例如:
gedit & gedit1=$!
这将启动gedit并将进程id保存在变量gedit1
中。如果我想稍后终止进程。我会写
kill $gedit1
如果这是java特有的,您可以传递一个未使用的系统属性,如下所示:
java -Dtag=process1 -jar ....
这不仅显示在命令行上,而且在进程内部也可以看到,如果您需要的话。这不是一个别名,不能帮助我识别一个进程和另一个进程吗?@hexa氰化物它确实有帮助。当我的编辑获得批准时,请参见我添加到该答案中的示例。