我正在致力于自动化维护例程,该维护例程涉及启动和停止在屏幕会话中运行的脚本。我的方法是终止屏幕会话,然后重新启动它并从脚本中运行命令,使用创建屏幕和传递命令而不需要附加到屏幕的能力。
但是,我在这方面遇到了困难。我可以正确创建屏幕而无需使用screen -d -m -S screen_name. 但是,如果我运行基于以下命令的命令:
screen -S screen_name-X stuff "command 1"'echo -ne '\015''"command 2"'echo -ne '\015''
echo -ne '\015' 用反引号而不是单引号包裹。这是模拟用户按下回车键,因为我使用的命令正在移动到一个目录并执行位于那里的脚本。此命令有效,但前提是屏幕创建后已附加到屏幕。当我尝试自动化创建屏幕并在其中运行命令的过程时,我希望避免在脚本中附加和分离。我将尝试创建一个包含我需要在屏幕内执行并根据我的结果进行编辑的命令的 shell 脚本的建议。
有没有办法在一个命令中创建一个屏幕并在屏幕内运行一个命令,或者在创建之后但在执行命令之前不必附加到屏幕?
提前致谢。
**更新 - 尝试了将我需要执行的命令放在 shell 脚本中的建议后,我已经能够成功创建一个屏幕并从屏幕内执行命令,但是我得到了脚本停止运行时的行为屏幕也关闭。这不应该是一个问题,因为脚本是一个日志脚本,它应该只在系统管理员的知识或我试图开发的脚本中停止,但是最好以这样的方式设置屏幕如果脚本停止,则不会消失。是否有可能实现这种行为?**