Обычно приложения, которые занимают слишком много времени, чтобы выполнить, и DOSENT требуют, чтобы пользовательское взаимодействие отправляется на фоновый режим, чтобы мы могли продолжить нашу работу в терминале.
Работа, работающие в фоновом режиме обрабатываются так же, как рабочие места, работающие на переднем плане, за исключением того, что их STDOUT, STDIN и STDERR.
Если у вас есть работа, которая занимает слишком много времени, например, сжатие файлов или резервного копирования, вы можете отправить эти работы в фоновом режиме.
Вы можете перечислить работу, которые работают в фоновом режиме, используя работу заданий
.
$ ./job1.sh &
[1] 9747
$ ./job2.sh &
[2] 9749
$ ./job3.sh &
[3] 9751
$ jobs
[1] Running ./job1.sh &
[2]- Running ./job2.sh &
[3]+ Running ./job3.sh &
Вот всякий раз, когда задание отправляется на фоновую оболочку, отображает идентификатор задания
и PID
процесса. Если мы хотим, если мы хотим, чтобы процесс вернуться на передний план, мы можем использовать команду FG
, чтобы вернуть ее обратно.
$ fg 1
./job1.sh
Но имейте в виду, что при закрытии терминала (Shell) SIGHUP будет отправлен на все фоновые процессы, которые вырезаны из оболочки, вызывающие эти процессы, чтобы умереть. Чтобы предотвратить это, вы можете использовать , опишите команду
, чтобы удалить этот процесс из таблицы задания, и, таким образом, предотвращение погибшего процесса.
Один из лучших способов - начать фоновый процесс с помощью команды
. команду
Предотвращение отправки SIGHUP на дочерние процессы (рабочие места BG) также могут быть предотвращены путем установки HUPONEXIT
Опция Bash Shell.
$ shopt -s huponexit
Эта опция установлена по умолчанию в последних версиях Bash, но в случае его не установлена, мы можем добавить это к ~ / .bashrc
, чтобы сделать его поведением по умолчанию.
Проблема возникает после переустановки драйвера NVIDIA, с помощью здравоохранения команды (выполняйте базовые здравомыслие тесты на существующей установке драйвера NVIDIA), NVIDIA-установщик -sanity , я мог бы найти проблему (ошибка: Установленный файл *** имеет различную контрольную сумму (###), чем когда он был установлен (###)) Чтобы исправить это, удалите вручную эти файлы и переустановите драйвер.