私のps
コマンドは、以下のようにLinuxの特定のバージョンを除いて動作します。
[root@failinghost ~]# ps -xef | grep -v grep | grep websphere
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
[root@failinghost ~]# ps -version
ERROR: Unsupported SysV option.
********* simple selection ********* ********* selection by list *********
-A all processes -C by command name
-N negate selection -G by real group ID (supports names)
-a all w/ tty except session leaders -U by real user ID (supports names)
-d all except session leaders -g by session OR by effective group name
-e all processes -p by process ID
-q by process ID (unsorted & quick)
T all processes on this terminal -s processes in the sessions given
a all w/ tty, including other users -t by tty
g OBSOLETE -- DO NOT USE -u by effective user ID (supports names)
r only running processes U processes for specified users
x processes w/o controlling ttys t by tty
*********** output format ********** *********** long options ***********
-o,o user-defined -f full --Group --User --pid --cols --ppid
-j,j job control s signal --group --user --sid --rows --info
-O,O preloaded -o v virtual memory --cumulative --format --deselect
-l,l long u user-oriented --sort --tty --forest --version
-F extra full X registers --heading --no-heading --context
--quick-pid
********* misc options *********
-V,V show version L list format codes f ASCII art forest
-m,m,-L,-T,H threads S children in sum -y change -l format
-M,Z security data c true command name -c scheduling class
-w,w wide output n numeric WCHAN,UID -H process hierarchy
[root@failinghost ~]# ps -V
procps version 3.2.8
[root@failinghost ~]# uname -a
Linux failinghost 2.6.32-754.28.1.el6.x86_64 #1 SMP Fri Jan 31 06:05:42 EST 2020 x86_64 x86_64 x86_64 GNU/Linux
以下は別のLinuxホストです。幸いなことに、エラーは発生しません。
[root@workinghost ~]$ ps -xef | grep -v grep | grep websphere
[root@workinghost ~]$ echo $?
1
[root@workinghost ~]$ uname -a
Linux workinghost 3.10.0-1062.1.2.el7.x86_64 #1 SMP Mon Sep 16 14:19:51 EDT 2019 x86_64 x86_64 x86_64 GNU/Linux
[root@workinghost ~]$ ps -V
procps-ng version 3.3.10
私のpsコマンドがSolaris以外のすべてのシステムで動作したいと思います。
両方のLinuxバージョンで動作するソリューションを提案できますか?
ベストアンサー1
おそらく必要ありません。x
すべての-e
プロセスを選択すれば十分です。
ps -ef
ps
これは起こり得るすべてのLinuxバージョンで機能します。
fromの現在のバージョンは、ps
警告なしにダッシュの有無にかかわらずオプションをprocps-ng
解釈します。 CentOS 6の以前のバージョンでは警告が追加されました(しかし、まだすべてのプロセスが一覧表示されているので、探しているプロセスが存在する場合はそれを見つける必要があります)。 )。x
ps
procps
grep
行動どちらのバージョンでも異なりますが、ps -xef
コマンドとその環境が出力されます。これを維持するには、警告を削除できます。
ps -xef 2>/dev/null
これは、ps
fromprocps
と以前のバージョンと新しいバージョンの両方で機能しますprocps-ng
。