Допустим вам нужно сделать какой-то процесс который отработает один раз и все...процесс работает долго, ждать не хочеться...хочеться спать...
вариант номер один сделать задание cron...самое простое
crontab -e, потом удалить
вариант номер два
И пойти спать.... nohup переопределяет для процесса сигналы отключения терминала и тп..что по сути и происходит когда вы отключаетесь от терминала....запустили и пошли спать...
Третий способ самый интересный и полезный утилита screen
Эта утилита создает консольный терминал, как демон и позволяет к нему подключиться любому количеству пользователей... пример выше тогда будет выглядеть так
скрин определяет специальную переменную....дальше запускаем команду
нажимаем Ctrl-F d ( две последовательности шлем в терминал - Ctrl-F и букву d - аналогия Ctrl-D только для screen ) подробнее про управляющую последовательность лучше почитать в man (русскоязычный доступен здесь ). Самая главная опасность (условно) совместной работы в screen - это то что нажатие системной посылки Ctrl-D прекращает сессию вообще
("выходить" пользователю необходимо исключительно через Ctrl-F d)
а демон скрина остался работать...убедиться в этом можно следущем образом..
сделать на него sudo для всех пользователей, и из под него запустить скрин....готово общий терминал работы для n пользователей...
Всем удачной ночи
вариант номер один сделать задание cron...самое простое
crontab -e, потом удалить
вариант номер два
nohup /home/user/some_command.pl & илиnohup /home/user/some_command.pl > result.txt & или
И пойти спать.... nohup переопределяет для процесса сигналы отключения терминала и тп..что по сути и происходит когда вы отключаетесь от терминала....запустили и пошли спать...
Третий способ самый интересный и полезный утилита screen
Эта утилита создает консольный терминал, как демон и позволяет к нему подключиться любому количеству пользователей... пример выше тогда будет выглядеть так
screen -e^Ff -S duty-testсоздает скрин с именем duty-test и сразу в него входит...для вас это будет выглядеть как обычная консоль
bogdan@bogdan-Vostro-1015:~понять что вы на самом деле в скрине , можно следующем способом
bogdan@bogdan-Vostro-1015:~ echo $STY5331.duty-test
скрин определяет специальную переменную....дальше запускаем команду
bogdan@bogdan-Vostro-1015:~ /home/user/some_command.plСмотрим за выполнением , когда надоедает выходим из скрина и идем спать..
нажимаем Ctrl-F d ( две последовательности шлем в терминал - Ctrl-F и букву d - аналогия Ctrl-D только для screen ) подробнее про управляющую последовательность лучше почитать в man (русскоязычный доступен здесь ). Самая главная опасность (условно) совместной работы в screen - это то что нажатие системной посылки Ctrl-D прекращает сессию вообще
("выходить" пользователю необходимо исключительно через Ctrl-F d)
а демон скрина остался работать...убедиться в этом можно следущем образом..
bogdan@bogdan-Vostro-1015:~ screen -lsThere is a screen on:подключиться обратно можно командой выше... А еще можно создать условно общего юзера,
5331.duty-test (Detached)
сделать на него sudo для всех пользователей, и из под него запустить скрин....готово общий терминал работы для n пользователей...
Всем удачной ночи
Комментариев нет:
Отправить комментарий