加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

Bash 标记unix进程/在磁盘上存储pid?

发布时间:2023-06-13 08:32:16 所属栏目:Unix 来源:网络
导读: Bash 标记unix进程/在磁盘上存储pid?
bashunix
Bash 标记unix进程/在磁盘上存储pid?,bash,unix,Bash,Unix,所以,我需要运行一个程序,而不是跟踪它的PID(至少在内存中),然后杀死那个程

Bash 标记unix进程/在磁盘上存储pid?

bashunix

Bash 标记unix进程/在磁盘上存储pid?,bash,unix,Bash,Unix,所以,我需要运行一个程序,而不是跟踪它的PID(至少在内存中),然后杀死那个程序。有什么想法吗?我当时的想法是用我以后能找到的东西来标记这个过程,但这似乎是失败的。我的下一个想法是将PID存储在磁盘上,但我不知道这类事情的惯例是什么。有什么想法吗?谢谢 您的程序可以在/var/run/下创建一个目录来存储这些文件。例如,如果您的程序是myprog,它可能会在启动时将其PID存储在/var/run/myprog/PID如果程序可以同时运行多个实例,则可以在文件名中使用PID本身及其启动时间,

所以,我需要运行一个程序,而不是跟踪它的PID(至少在内存中),然后杀死那个程序。有什么想法吗?我当时的想法是用我以后能找到的东西来标记这个过程,但这似乎是失败的。我的下一个想法是将PID存储在磁盘上,但我不知道这类事情的惯例是什么。有什么想法吗?谢谢

您的程序可以在

/var/run/

下创建一个目录来存储这些文件。例如,如果您的程序是

myprog

,它可能会在启动时将其PID存储在

/var/run/myprog/PID

如果程序可以同时运行多个实例,则可以在文件名中使用PID本身及其启动时间,以确保每个实例具有唯一的文件名

/var/run/myprog/201410302306.1283.pid

(请注意,如果在文件名中使用PID,则由您决定是否将PID写入文件本身;一个空文件就足够了。)

您的程序可以在

/var/run/

下创建一个目录来存储此类文件。例如,如果您的程序是

myprog

,它可能会在启动时将其PID存储在

/var/run/myprog/PID

如果程序可以同时运行多个实例,则可以在文件名中使用PID本身及其启动时间,以确保每个实例具有唯一的文件名

/var/run/myprog/201410302306.1283.pid

(请注意,如果在文件名中使用PID,则由您决定是否将PID写入文件本身;一个空文件就足够了。)

您的程序可以在

/var/run/

下创建一个目录来存储此类文件。例如,如果您的程序是

myprog

,它可能会在启动时将其PID存储在

/var/run/myprog/PID

如果程序可以同时运行多个实例,则可以在文件名中使用PID本身及其启动时间,以确保每个实例具有唯一的文件名

/var/run/myprog/201410302306.1283.pid

(请注意,如果在文件名中使用PID,则由您决定是否将PID写入文件本身;一个空文件就足够了。)

您的程序可以在

/var/run/

下创建一个目录来存储此类文件。例如,如果您的程序是

myprog

,它可能会在启动时将其PID存储在

/var/run/myprog/PID

如果程序可以同时运行多个实例,则可以在文件名中使用PID本身及其启动时间unix命令手册,以确保每个实例具有唯一的文件名

/var/run/myprog/201410302306.1283.pid

(请注意,如果在文件名中使用PID,则实际上是否将PID写入文件本身取决于您自己;一个空文件就足够了。)

您可以使用

start-stop-daemon

启动程序并稍后将其杀死。它有很多选项来查找程序,最有用的是--pid,它在文件系统中存储并从文件中检索pid,通常在

/var/run

中(注意写入它的文件系统权限)

有关更多提示,请参阅手册页。

您可以使用

启动-停止守护进程

启动程序,然后将其杀死。它有很多选项来查找程序,最有用的是--pid,它在文件系统中存储并从文件中检索pid,通常在

/var/run

中(注意写入它的文件系统权限)

有关更多提示,请参阅手册页。

您可以使用

启动-停止守护进程

启动程序,然后将其杀死。它有很多选项来查找程序,最有用的是--pid,它在文件系统中存储并从文件中检索pid,通常在

/var/run

中(注意写入它的文件系统权限)

有关更多提示,请参阅手册页。

您可以使用

启动-停止守护进程

启动程序,然后将其杀死。它有很多选项来查找程序,最有用的是--pid,它在文件系统中存储并从文件中检索pid,通常在

/var/run

中(注意写入它的文件系统权限)

有关更多提示,请参见手册页。

最直接(也是最常见的情况)的方法是,正如您和切普纳已经提到的,将其存储在pid文件中。为此:

如果是系统范围的程序:

/var/run/prog.pid

如果是系统安装的程序,可能会运行多次:

/var/run/prog/prog_instance.pid

如果是用户本地程序:

$HOME/.prog/prog.pid

其他选项可能是使用

pgrep

查找它,只要您可以唯一地定义调用命令。例如,传递未使用的伪参数并将其用于检索:

$ prog.sg --instance_1234 &
$ pgrep -f -- '--instance_1234'
3523

正如您和chepner已经提到的,最直接(也是最常见的情况)的方法是将其存储在pid文件中。为此:

如果是系统范围的程序:

/var/run/prog.pid

如果是系统安装的程序,可能会运行多次:

/var/run/prog/prog_instance.pid

如果是用户本地程序:

$HOME/.prog/prog.pid

其他选项可能是使用

pgrep

查找它,只要您可以唯一地定义调用命令。例如,传递未使用的伪参数并将其用于检索:

$ prog.sg --instance_1234 &
$ pgrep -f -- '--instance_1234'
3523

正如您和chepner已经提到的,最直接(也是最常见的情况)的方法是将其存储在pid文件中。为此:

如果是系统范围的程序:

/var/run/prog.pid

如果是系统安装的程序,可能会运行多次:

/var/run/prog/prog_instance.pid

如果是用户本地程序:

$HOME/.prog/prog.pid

其他选项可能是使用

pgrep

查找它,只要您可以唯一地定义调用命令。例如,传递未使用的伪参数并将其用于检索:

$ prog.sg --instance_1234 &
$ pgrep -f -- '--instance_1234'
3523

正如您和chepner已经提到的,最直接(也是最常见的情况)的方法是将其存储在pid文件中。为此:

如果是系统范围的程序:

/var/run/prog.pid

如果是系统安装的程序,可能会运行多次:

/var/run/prog/prog_instance.pid

如果是用户本地程序:

$HOME/.prog/prog.pid

其他选项可能是使用

pgrep

查找它,只要您可以唯一地定义调用命令。例如,传递未使用的伪参数并将其用于检索:

$ prog.sg --instance_1234 &
$ pgrep -f -- '--instance_1234'
3523

为什么不在内存中存储PID的附加约束?你可以试试你到底想要什么

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章