Как я могу получить экран для выполнения команды, а затем отключить (то есть автоматически в одном скрипте без дополнительного ввода после первоначального запуска скрипта)? Например, я запускаю myscript.sh, и он автоматически запускает сеанс экрана, выполняет команду, а затем отключается.
command-line
script
gnu-screen
darkfeline
источник
источник
screen yourcommand
без-d
и-m
увидеть , как это происходит в первую очередь.zombie
опцию на экране. Положиzombie xy
в свой~/.screenrc
. Также должно быть возможно включить его только для одного сеанса, добавивzombie xy
в него другой файл и использовав его,-c file
но по какой-то причине это не работает, когда я пытаюсь это сделать. Или просто использоватьsh -c 'yourcommand;while :;do sleep 9999; done'
Чтобы запустить одну команду на экране и отсоединиться, вы можете попробовать:
Чтобы запустить несколько команд, попробуйте:
Обратите внимание, что при завершении программы экран (по умолчанию) убивает окно, в котором оно находилось.
Если вы не хотите, чтобы ваш сеанс был убит после завершения скрипта, добавьте
exec sh
в конце, например:Чтобы перечислить все ваши сессии, попробуйте:
Связанные: запуск экрана Unix, команда запуска, отсоединение .
источник
-S sessionname
:screen -dmS MyLongRunningScript bash -c "..."
.Чтобы начать новый сеанс в фоновом режиме с именем «сонный»
Для того, чтобы убить "сонный" сеанс
источник
screen -S sleepy -dm "cd myfolder;sleep 60"
?источник
это случилось со мной, когда я нажал control c (sig int), чтобы выйти из моей программы. он выходит полностью из всего bash. так что я нашел это, чтобы поймать SIGINT. и предотвратить выход из последнего удара. (необходимо ввести выход для выхода)
Я считаю полезным использовать cron для запуска программ nodejs при запуске. и запустить экран во время загрузки. в cron есть специальный синтаксис событий @reboot event
источник