Я запустил ./ install.sh
и попытался фон , чтобы иметь возможность закрыть сеанс ssh.
Но после выполнения bg
процесс снова выводится на терминал.
Кроме того, я ничего не вижу с заданиями
.
А 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 - это консоль, это не должно быть проблемой, но у вас не будет результатов для последующего просмотра.