Я пытаюсь запустить команду в экранном режиме, используя команду
screen -dmS screen_name sed -i 's/a/b/'g some-file.txt
Ничего не происходит. Когда я помещаю ту же команду в скрипт и запускаю команду:
screen -dmS screen_name bash -c /path/to/script
Это работает. У меня вопрос, могу ли я запустить команду в режиме демона без необходимости сначала помещать ее в сценарий? По сути, мне нужна эта функция демона, потому что она помогает запускать несколько команд параллельно, выполняя несколько команд sed для больших файлов параллельно, создавая каждую команду на отдельном демоне экрана, который автоматически завершается после завершения программы. Благодаря
Я предполагаю, что проблема с-S, при попытке опустить-S опцию, это должно, работать, даже без удара-c, так попробуйте это
screen -dm sed -i 's/a/b/'g some-file.txt
Это должно работать. Экран BTW не обновляется, необходимо рассмотреть переключение на 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
для всех функций и проверки здесь на всестороннюю шпаргалку
Это работает на Вас?
screen -dmS screen_name bash -c "sed -i 's/a/b/'g some-file.txt"