Назад | Перейти на главную страницу

Запуск сценария - это процесс?

я бегу ./install.sh и я пытался задний план чтобы иметь возможность закрыть сеанс ssh.

Но после запуска bg процесс снова выводится на терминал.

Кроме того, я ничего не вижу с jobs.

И top показывает несколько примеров cc1plus поэтому я даже не уверен, действительно ли запуск сценария считается процессом? Возможно, он запускает несколько процессов в процессе обработки ...

Когда вы запускаете сценарий Shell / Bash, выполнение сценария является процессом. Когда сценарий запускает другие программы, это тоже процессы. Если вы запускаете другие сценарии из своего сценария, в зависимости от того, как вы их запускаете, они также могут быть собственными процессами.

Например, если вы запустите ./install.sh и содержание:

#!/bin/bash
...
...
...

Тогда у вас будет bash процесс, запускающий ваш скрипт. Что-то вроде:

ps -ef
joe 345   1   /bin/bash install.sh

345 представляет PID (идентификатор процесса), а 1 представляет PID родительского процесса.

Если ваш install.sh затем запускается сценарий, скажем touch /tmp/myfile тогда у вас будет:

ps -ef
joe 345   1   /bin/bash install.sh
joe 346  345  touch /tmp/myfile

Что касается вывода, сообщение суперпользователя, указанное в комментарии к вопросу, довольно хорошо объясняет его, поэтому я не буду пытаться его повторно объяснять. Но вывод сценария / программы привязан к stdout, поэтому он выходит на то, что является stdout. Если это консоль, пусть будет так. Если это файл - отлично. Теоретически, если процесс выполняется в фоновом режиме, и вы отключаетесь от консоли, а stdout является консолью, это не должно быть проблемой, но у вас не будет вывода для последующего просмотра.