Попытайтесь использовать netstat
с rmsock
.
port=$1
addr=`netstat -Aan | grep $port | awk '{print $1}`
pid=`rmsock $addr tcpcb | awk '{print $9}'`
ps -ef | grep $pid
Для netstat
, -A
показывает адрес любых блоков управления протокола, связанных с сокетами, -a
опция показывает состояние всех сокетов включая те из серверных процессов, и -n
опция дает вывод в числовой форме, таким образом, Вы не напрасно тратите время, пытаясь разрешить адреса.
rmsock
, использование адреса, данного в column1 выводе netstat
, и использование tcpcb
база данных, возвратит информацию о процессе, содержащем тот сокет, включая pid и имя.
Можно затем использовать ps -ef | grep $pid
получить информацию процесса.
Вы видите эту статью в Системном Журнале IBM для большего количества информации об этом.
У Вас нет значения PATH
набор переменной среды для включения безотносительно каталога исполняемого файла HelloWorld живет в.
Предположим, Вы использовали cd
для получения до каталога можно выполнить HelloWorld с этой командой: ./HelloWorld
Оболочкам Unix назвали переменную PATH
, который является a :
- разграниченный список каталогов, в которых можно посмотреть, когда пользователь дает команду без полностью определенного пути (/usr/bin/ls
полностью определяется: это запускается в /
и концы в ls
, но ls
не полностью определяется отдельно). Если у Вас нет записи .
в PATH
, необходимо явно использовать ./
в начале команды заставить файл того имени в текущем каталоге выполняться.
Использовать ls -F
видеть звезду в конце имени файла. Если Вы используете ls
от GNU coreutils Вы может установить переменную среды LS_OPTIONS
автоматически включать это и любое другое число вариантов для Вас. Опции для ls
перечислены в ls
руководство, чтобы видеть, что они работают: man ls
@brewer2: установка переменных среды на входе в систему является конкретной оболочкой и хороший вопрос сам по себе.