Запускаю скрипт - my_script.ksh как процесс с 5 длинными аргументами
на моей машине solaris / linux (пример 1),
Позже я проверяю процесс
ps -ef | grep my_script.ksh
Я не понимаю, почему я не получил всех аргументов от ps -ef ? , (см. пример 2)
или, может быть, команда ps имеет ограничение на отображение длинной строки? , или, может быть, нужно написать команду ps с некоторыми флагами, которые позволят отображать все аргументы?
что нужно сделать, чтобы увидеть все аргументы из ps -ef команда?
Пример 1 ( бегать my_script.ksh с соответствующими аргументами)
# ( /tmp/my_script.ksh PATH1=/usr/lib/efcode/sparcv9/efdaemon PATH2=/etc/opt/VO/share/conf/nnmet/mib/Fore-pre802dot1Q-VLAN-MIB.mib -scan-files -ignore-simbolic-links -give-full-file-details ) &
[1] 18942
Пример 2 (проверьте выполнение скрипта, но не видите все аргументы?)
# ps -ef | grep my_script.ksh
root 18942 11889 0 13:22:20 pts/1 0:00 /bin/ksh /tmp/my_script.ksh PATH1=/usr/lib/efcode/sparcv9/efdaemon PATH2=/etc/o
В Solaris попробуйте использовать /usr/ucb/ps -auxwww | grep my_script.sh
вместо. Это покажет полную командную строку и аргументы процесса. Для Linux просто используйте ps aux
.
Также попробуйте поэкспериментировать с принудительным отображением определенных полей только ps
, например ps -ao comm,args
отобразит команду и ее аргументы.
Немного времени, проведенного в man ps
должен привести вас на верный путь.
/usr/ucb/ps
устарела и больше не устанавливается по умолчанию в текущих выпусках Solaris.
ps -ao comm,args
будет иметь ту же проблему, то есть командная строка усечена до 80 символов по дизайну.
Вот поддерживаемое альтернативное решение:
pargs $(pgrep my_script.sh)