2

我正在修改一个 shell 脚本以在 Cygwin(路径等)中工作。我面临的一个问题是这条特定的行:

ps斧头| grep -v grep | grep $DB_JAVA_CLASS > /dev/null 2>&1

使用 ps 和 procps 尝试此操作,它似乎并没有通过 Java 类名定位进程,即使我知道该进程正在通过手动 ps ax/procps ax 显示的 /cygdrive/c/windows/system32/javaw 的证据运行. 如果不止一个正在运行,我不想检查 java 进程本身。

是否有一些等效的 Cygwin 方法可以用来获得相同的结果?基本上,脚本正在检查进程是否已经在运行,如果没有,则生成进程。

感谢您提供的任何见解。

4

1 回答 1

0

我想您的 Java 进程是标准的 Windows 进程而不是 Cygwin 进程;您需要添加-W标志来列出这些。还要小心使用-

ps auxW    # won't work
ps aux -W  # will probably do what you want

另一种选择是

ps -efW

例如,请参阅我编写的用于终止延迟进程(例如 Microsoft OneNote)的psgrep脚本。

于 2013-07-24T13:47:03.523 回答