LINUX.ORG.RU
решено ФорумAdmin

Как оставить работать скрипт в фоне после закрытия терминала (& - не работает)

 ,


0

1

Есть скрипт который следит за состоянием Screensaver и при нужном его изменении (блокировка, разблокировка, затемнение экрана) выполняет действие. При вызове скрипта из терминала с символом & в конце он действительно уходит в фон, но после закрытия терминала который запустил этот скрипт завершается и он. Вот скрипт:

 #!/bin/bash
 
  process() {
  while read input; do 
    case "$input" in
      UNBLANK*)   /usr/bin/keepass2 --unlock-all; /usr/bin/amixer sset Master on  >> /dev/null  ;;
      BLANK*)     /usr/bin/keepass2 --lock-all;   /usr/bin/amixer sset Master off >> /dev/null  ;;
      LOCK*)      /usr/bin/keepass2 --lock-all;   /usr/bin/amixer sset Master off >> /dev/null  ;;
    esac
 done
 }

 /usr/bin/xscreensaver-command -watch | process

Как его заставить работать после закрытия терминала?

bash -c 'ваш скрипт'
bash -c 'ваш скрипт'&

Vlad-76 ★★★★
()

Про disown/screen/nohup это всё понятно, но тут с постановкой задачи очевидно какая-то жопа

zolden ★★★★★
()
Ответ на: комментарий от FluffyPillow

Да как-то костыльно это всё выглядит, думаю должен быть более прямой способ

zolden ★★★★★
()

выходи из терминала через команду exit, а не закрывая окно.

Dron ★★★★★
()

Просто замути systemd юнит от своего юзера и демонизируй скрипт.

ionanahin ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.