Фонове іcполненіе програм в linux cli, admins su

Думаю, що ні для кого не секрет, що за допомогою командного рядка Linux можна вирішити будь-які завдання, в тому числі і ті, вирішення яких зовсім нетривіально, а часом і неможливо без додаткового ПЗ в Windows. Останнім часом все більше людей переходять на Linux / Mac системи, при цьому в більшості своїй навіть не уявляють тієї сили, яку дає командний рядок. Windows навіть з PowerShell курить збоку.

Цією статтею я починаю цикл «Linux для початківців», в якому періодично буду описувати корисності, які очевидні і прості, але багато новачків навіть не здогадуються про їх існування.

Управління фоновими задініямі здійснюється за допомогою команд fg, bg, jobs, nohup і disown.

Для того, щоб запустити додаток відразу в фоновому режимі, додамо в кінці рядка . приклад:

> Sleep 50

Після того, як ми натиснемо Enter, нам повернеться рядок формату [job_id] pid.

Використовуючи команду jobs ми можемо подивитися список завдань в тлі і їх статус. Наприклад через 50 секунд після запуску попереднього прикладу, ввівши jobs ми побачимо наступне:

Після запуску ми побачимо повідомлення, що стандартний висновок перенаправлений в файл $ HOME / nohup.out. Тепер сміливо можемо закривати термінал.

Даний прийом працює, якщо ми відразу знаємо, що завдання потрібно буде виконати після завершення сесії, але що-ж робити, якщо ми не розрахували часу на виконання будь-якого додатка, а нам терміново потрібно закрити термінал? Це особливо актуально для ssh з'єднань. У цьому випадку на допомогу нам прийде команда disown.

disown [-ar] [-h] [jobspec ...]

Ключ a - застосувати до всіх завдань.

Ключ r - застосувати до всіх запущеним завданням.

Ключ h - залишити завдання в списку jobs.