- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要一个 .sh 文件,如果我的 python 服务没有运行,它会回显 0。我知道 pgrep
是我想使用的命令,但我在使用它时遇到错误。
if [ [ ! $(pgrep -f service.py) ] ]; then
echo 0
fi
网上找的,一直报错
./test_if_running.sh: line 3: syntax error near unexpected token `fi'
./test_if_running.sh: line 3: `fi;'
当我输入时
./test_if_running.sh
最佳答案
您的代码中的问题是嵌套的 [ ... ]
。另外,正如@agc 所指出的,我们需要在这里检查的是 pgrep
的退出代码,而不是它的输出。所以,if
的正确写法是:
if ! pgrep -f service.py &> /dev/null 2>&1; then
# service.py is not running
fi
关于linux - 在 if 语句中使用 pgrep 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44234695/
我想运行 pgrep 来查找某个进程的 ID。它工作得很好,除非作为更大的 bash 命令运行,因为 pgrep 还将匹配它的父 shell/bash 进程,其中包括匹配表达式作为其命令行的一部分。
我在使用 pgrep 和 wc 命令时遇到问题。我发现 2 行我只期望 1 行。 my $test = `pgrep -f 'blabla'`; print $test; <------ pri
我想在 Linux 中使用“pgrep”命令获取两个或多个进程的 PID。 我们知道 pgrep 的语法是 pgrep [options] 这是一个假设的命令,它应该返回名称分别为 process1
我正在尝试使用 pgrep 首先检测一个进程是否正在运行,如果是,则确定该进程是否被意外复制(运行)。如果是这样,它应该终止重复的进程。 if ! pgrep -f "java" > /dev/nul
我有一个 bash 脚本试图用参数调用 pgrep(过度简化): PATTERN="'/opt/apps/bin/lighttpd.bin -f /opt/apps/etc/lighttpd/ligh
我一辈子都弄不明白为什么 pgrep 没有返回我进程的 PID。然后,在最后一次徒劳的尝试中,我只键入了可执行文件名称的一部分,瞧,PID 出现了。这导致了这个实验: bash-4.1$ ./test
我有一个脚本,我只想运行一次。如果脚本第二次被调用,我会检查它是否存在锁定文件。如果锁文件存在,那么我想看看进程是否真的在运行。 我一直在摆弄 pgrep 但没有得到预期的结果: #!/bin/bas
pgrep 使用正则表达式作为模式样式。我错过了 grep 的 -i 选项,告诉 pgrep,我正在搜索不区分大小写。 另一种选择是 ps ax | grep -i PATTERN 但是我必须使用 P
我试图找到一个包含术语“someWord”和另外两个由 $1 和 $2 表示的特定进程 7 regex="someWord.*$1.*$2" 8 echo "$regex" 9 [
我在这里阅读了几篇关于 pgrep“似乎”返回自身的案例的帖子,尽管它永远不应该返回。关键似乎是 bash 和 sh 功能之间的区别。除了在我的例子中,我已经确认 sh 确实是 bash 的链接。 我
我有一个练习要在 Linux 中练习 BASH,但我陷入了困境。它说如下: “列出命令行中包含 BASH 一词的所有进程。将输出重定向到文件。再执行两次此操作,将其添加到文件末尾。然后列出按 PID
如果没有运行,我当前的 cronjob 将启动 beaver: #!/bin/bash pgrep -l -x beaver || /usr/sbin/service beaver start 我想修
我正在尝试查找进程 (motion_sensor.py) 的 PID,但 pgrep 未返回任何内容。为什么不返回进程id? pgrep -u www-data motion_sensor.py ps
如果我执行以下,这只是一个将永远等待的长命令 grep 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
我正在编写一个代码: 将所有 xsessions 名称放在一个文件中。 虽然不是 EOF ,但将一行分配给 a 变量,然后将其逐行传递给 pgrep。 在终端中输出 pgrep。 有几种打印桌面环境、
我正在与kubernetes和minukube一起在我的机器上本地运行集群,但是我遇到了这个错误: W1118 20:54:48.711968 14383 kubeadm.go:502] pgrep
我正在使用: pgrep -P $$ 获取 $$ 的子 pid。但实际上我也想要一份孙辈和曾孙辈的名单。 我该怎么做呢?例如,使用常规编程语言,我们会使用递归来做到这一点,但是使用 bash 呢?也许
当我在 shell 上执行以下命令时,它会返回预期的 PID,例如4676: pgrep -f konakart 但是当在脚本上使用该行时,它会返回两个 ID(预期的一个,我猜另一个来自它本身): #
我需要在linux上的bash中找到某个java进程的pid。 如果只有一个java进程, PID=$(pgrep java) 有效。 对于多个 java 进程,它变得更加复杂。我手动运行 pstre
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我是一名优秀的程序员,十分优秀!