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

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

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, когда он работает в фоновом режиме, а не на переднем плане?

  • Есть ли способ предоставить разные разрешения для разных процессов, вызываемых от одного и того же пользователя?
  • Почему я вижу больше процессов в KVM, чем в OpenVZ?
  • Являются ли убийственные процессы, созданные при безопасном запуске?
  • Запись внутри сокета, открытого другим процессом в Linux
  • Как запустить Java-процесс, который будет рассматриваться не как «java ...» в списке процессов?
  • Спящие процессы получают одинаковое время процессора?
  • Как запустить убитый Java-процесс с помощью PID?
  • Странное поведение с командой bg
  • One Solution collect form web for “Идентификатор процесса команды, выполняемой пользователем”

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

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

     command & pid=$!; fg 
    Linux и Unix - лучшая ОС в мире.