我在 Ubuntu 上创建了以下脚本,可以暂停和启动特定进程:
#!/bin/bash
loopProcess () {
COUNTER=0
while [ true ]; do
echo $COUNTER
sleep 1
let COUNTER=COUNTER+1
done
}
loopProcess &
pidLoopProcess="$!"
while [ true ]; do
read -p "" state
if [ "$state" == 'a' ]; then
echo "Process is running"
kill -CONT "$pidLoopProcess"
elif [ "$state" == 'b' ]; then
echo "Process is sleeping"
kill -STOP "$pidLoopProcess"
fi
done
演示它是如何工作的:
我想知道是否可以使用命令行检查特定进程何时运行或休眠。伪代码将是这样的:
if [ "$(StatePID $pidLoopProcess)" == 'sleeping' ]; then
## do something
fi
我知道使用这个脚本我可以声明一些全局变量并将它们用作标志......但我想知道是否有一个命令行工具可以为我做这件事。在那儿?可能吗?
在 Linux 上,您可以使用它来获取具有给定 PID 的进程的状态:
T
当进程停止时返回。因此,假设您在 Linux 系统上,您可以执行以下操作:完整的流程状态代码列表如下
man ps
: