Фонове і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.