я бегу ./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 является консолью, это не должно быть проблемой, но у вас не будет вывода для последующего просмотра.