Intereting Posts
Неиспользует ли уведомление об увольнении, когда начинается запись или когда она завершена? Как разрешить openssl отвечать на http / s получить непосредственно из командной строки во время прослушивания Что приложение SFTP просто позволяет перетаскивать с рабочего стола на сервер? Миграция конфигурации из syslog-ng в rsyslog Узнайте, какие сценарии запускаются bash при запуске Linux btrfs как удалить неисследованную файловую систему из списка? Взаимодействие с запущенной интерактивной консольной программой из другого процесса Пересылка TCP через SSH с использованием учетной записи, отличной от root Настройка сшивания OCSP – проверьте сертификаты CA Пользовательская раскладка клавиатуры сбрасывается до значения по умолчанию после ожидания или перезагрузки gdrive -bash: / usr / bin / drive: невозможно выполнить двоичный файл Как экспортировать переменную из Perl-скрипта в сценарий оболочки? shebangs с абсолютными путями по умолчанию (POSIX)? У Cygwin нет команды наблюдения? Какой файловый режим является символической ссылкой?

Идентификатор процесса команды, выполняемой пользователем

Подумайте, что я запускаю только некоторую базовую команду.

ls 

Теперь будет ли команда выше pid, когда она будет выполнена? Если да, то как я могу определить, что pid?

когда я пытаюсь

 echo $! 

сразу после команды ls, он возвращает пустой вывод.

тогда как если я выполняю

 ls & 

а потом

 echo $! 

теперь он дает мне pid команды ls.

На самом деле я получил этот вопрос, когда смотрел ниже журналы аудита.

 type=USER_CMD msg=audit(12/16/2014 17:15:36.201:68342) : user pid=19247 uid=enginst auid=enginst ses=4229 msg='cwd=/apps/oradump/ora_temp_rdbms/OH3 cmd=chmod -R 777 11203 terminal=pts/2 res=success' type=USER_CMD msg=audit(12/16/2014 17:36:33.968:68753) : user pid=1801 uid=enginst auid=enginst ses=4229 msg='cwd=/apps/oracle/RDBMS cmd=chmod -R 777 11203 terminal=pts/2 res=success' 

Здесь в приведенном выше журнале говорится, что «chmod -R 777» запускается пользователем enginst, и есть также pid.

Теперь я могу заключить, что команда chmod была явно запущена пользователем, поскольку журналы auditd не показывают ppid (идентификатор родительского процесса), что было бы так, если какой-то скрипт / программа инициировала его?

Однако теперь я включил учет процесса, чтобы проверить выше. Но в любом случае, мой вопрос стоит.

были бы команды вроде chmod, ls получает pid, когда он будет выполнен? или нет? или он получает pid, когда он работает в фоновом режиме, а не на переднем плане?

Каждая внешняя команда и каждая подоболочка имеют свой собственный PID. У оболочек встроенных нет.

Я не знаю какой-либо функции, которая дает вам PID только что вышла синхронной команды. Конечно, вы можете запускать все команды таким образом:

 command & pid=$!; fg