我想在linux中获取最后/最新进程pid。任何人都建议我找到它的命令?但我不知道最后一个流程是从哪个开始的。
答案 0 :(得分:6)
如果您想要最近执行的后台命令的进程ID,您可以使用!变量。例如:
> gvim text.txt &
> echo $!
2842
答案 1 :(得分:5)
更新:感谢William提供关于awk的提示。
前提条件:该流程仍在运行。
我不是UNIX专家,但我考虑过以下方法:
ps aux --sort +start_time | tail -n 4 | awk 'NR==1{print $2}'
ps
将列出所有进程,我们将按start_time对它们进行排序。之后我们将从输出的最后一行[0]取第四个,awk将返回第二个字段中找到的pid。
root@unix ~ % sleep 10 &
[1] 3009
root@unix ~ % ps aux --sort +start_time | tail -n 4 | awk 'NR==1{print $2 " " $11}'
3009 sleep
root@unix ~ %
[0]第四行,因为我的命令行中有三个管道命令。
答案 2 :(得分:2)
获取var variableOne: Int = 0
var variableTwo: Int = 0
init(variableOne: Int, variableTwo: Int) {
self.variableOne = variableOne
self.variableTwo = variableTwo
super.init(frame: CGRectZero)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
:
PID
将#!/bin/bash
my-app & echo $!
保存在变量中:
PID
将所有实例#!/bin/bash
my-app & export APP_PID=$!
保存在文本文件中:
PID
将输出,错误和#!/bin/bash
my-app & echo $! >>/tmp/my-app.pid
保存在单独的文件中:
PID