修改用于Cygwin的Shell脚本

修改用于Cygwin的Shell脚本,cygwin,ps,procps,Cygwin,Ps,Procps,我正在修改一个shell脚本以在Cygwin(路径等)中工作。我面临的一个问题是这一行: ps ax | grep-v grep | grep$DB|u JAVA|u CLASS>/dev/null 2>&1 使用ps和procps尝试这一点,它似乎没有通过Java类名来定位进程,尽管我知道进程是通过/cygdrive/c/windows/system32/javaw运行的 从手动ps ax/procps ax显示。我不想在多个进程运行的情况下检查java进程本身 是否有一些等效的Cygwin方

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

ps ax | grep-v grep | grep$DB|u JAVA|u CLASS>/dev/null 2>&1

使用ps和procps尝试这一点,它似乎没有通过Java类名来定位进程,尽管我知道进程是通过/cygdrive/c/windows/system32/javaw运行的 从手动ps ax/procps ax显示。我不想在多个进程运行的情况下检查java进程本身

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


感谢您提供的任何见解。

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

ps auxW    # won't work
ps aux -W  # will probably do what you want
另一种选择是

ps -efW

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

感谢您抽出时间。尽管有一些有用的信息,但它仍然没有使用java类名返回进程。我想我需要寻找一些替代方案。欢迎任何其他建议。你是对的-我应该核实一下!我记得以前看到过完整的命令行,但现在尝试时,也没有列出任何参数。