在屏幕守护进程模式下运行命令

在屏幕守护进程模式下运行命令

我正在尝试使用命令在屏幕模式下运行命令

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

它将带您进入 top 会话。希望这会有所帮助。检查

man tmux

针对所有功能并检查这里获得一份全面的备忘单

答案2

这对你有用吗?

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

相关内容