Intereting Posts
Тестирование, если файлы начинаются с определенных букв и не содержат специального символа, за исключением периода в конце рядом с расширением файла в сценарии оболочки Разделение двух каталогов рекурсивно на основе контрольных сумм? почему ping проиграл, когда интерфейс добавлен в ovs bridge На таблице разделов Автоматически отключать сенсорную панель при запуске Переход на Mozilla Firefox 5.0 с помощью терминала в CentOS? Почему awk '{print "Hi, Judy"}' печатает "Hi, Judy" повторно при нажатии Return? Монетный двор 15 Второй размер окна монитора Запуск bash внутри cronjob xargs с перенаправлением stdin / stdout mount – привязать другого пользователя к себе Задержка Hdmi Выход на один из экранов 3G-соединение с wvdial не получает IP, выходы с кодом 16 Как включить системные сессии пользователя для удаленного входа в систему CentOS 7? vim, как настроить backspace и удалить ключи как в обычном режиме

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

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

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