Выполнение команды в режиме экранного демона

Выполнение команды в режиме экранного демона

Я пытаюсь выполнить команду в экранном режиме с помощью команды

screen -dmS screen_name sed -i 's/a/b/'g some-file.txt

Ничего не происходит. Когда я помещаю ту же команду в скрипт и запускаю команду:

screen -dmS screen_name bash -c /path/to/script

Это работает. Мой вопрос в том, могу ли я запустить команду в режиме демона, не помещая ее сначала в скрипт? По сути, мне нужна эта функция демона, потому что она помогает выполнять несколько команд параллельно, выполняя несколько команд sed для больших файлов параллельно, выдавая каждую команду на отдельный демон экрана, который автоматически завершается после завершения программы. Спасибо

решение1

Я думаю, проблема в -S, если вы попытаетесь опустить опцию -S, это должно работать даже без bash -c, так что попробуйте это

screen -dm sed -i 's/a/b/'g some-file.txt

Это должно сработать. Кстати, экран не обновлен, вам следует подумать о переходе на tmux. Он может предоставить вам гораздо больше возможностей.

Вы можете установить tmux, введя:

sudo apt-get install tmux

Итак, ваш код должен выглядеть так:

tmux new-session -d -s foo 'sed -i 's/a/b/'g some-file.txt'

Я мог бы проверить это с помощью

tmux new-session -d -s hello 'top'

если вы наберете

tmux attach -t hello

Это приведет вас к сеансу с топом. Надеюсь, это поможет. проверить

man tmux

для всех функций и проверьтездесьдля полной шпаргалки

решение2

Вам это подходит?

screen -dmS screen_name bash -c "sed -i 's/a/b/'g some-file.txt"

Связанный контент