Я создал экран, но могу ли я теперь как-нибудь выполнить команду, которая будет запускать команды на отдельном экране?
Я даже не знаю, возможно ли это, но если это так, то, вероятно, это произойдет. быть чем-то простым и легким для вас.
Спасибо за ваши усилия.
Примечание. На оригинальном плакате спрашивалось: «Как я могу сделать это в cron?». Я обновил ответ на этот адрес.
Получите скрипт 'inscreen' и поместите его в ~/bin/
:
# download 'inscreen' script from https://gist.github.com/1019125 wget -O ~/bin/inscreen https://gist.github.com/gists/1019125/download chmod 755 ~/bin/inscreen
создайте сеанс экрана с именем ' cronjobs ':
screen -d -m -S cronjobs
Вы должны будете организовать это при каждой загрузке или добавить «--new-if-required» к каждой записи в crontab ниже. [ +1117]
Добавить записи в cron с помощью inscreen
, crontab выглядит так:
PATH = /home/YOURNAME/bin:/usr/sbin:/usr/bin:/sbin:/bin * * * * * inscreen cronjobs -- sh -c 'echo $(date): start; sleep 30; echo $(date): end; sleep 4' 0 0 * * 0 inscreen cronjobs --keep-open --title reminder echo ==== CALL YOUR MOM ==== 0 0 * * 1 inscreen cronjobs --window 0 ls /tmp
Выше будет:
более смелый ответ хорош, но немного сложен. Вы также можете просто упростить это до
screen -d -m -S mysession -t label sleep 1m
с оговоркой, что при выходе из процесса экран просто исчезнет, и вы не сможете увидеть, что он записал на экран. Это может или не может быть хорошо для вашего случая. Вы можете изменить это, установив в .screenrc
defzombie ZZ
, что будет означать, что экраны зависают после завершения процесса, пока вы не нажмете Z.