在 bash 脚本中使用 screen

2023-12-01

我正在远程服务器上运行游戏服务器,我使用独立的屏幕实例使其保持运行。 我现在正在创建一个脚本,可用于关闭服务器,备份所有重要文件并再次启动它,但是我在处理屏幕时遇到了一些困难。

我假设我可以通过在脚本中调用 screen -r 来切换到脚本中的分离屏幕(在服务器已经关闭之后)。 但这似乎不起作用,因为如果我从外部屏幕运行脚本,它只会在该会话中启动服务器。

screen -r
cd ~/servers/StarMade/
sh StarMade-dedicated-server-linux.sh
screen -d

这就是我认为可以解决问题的方法,但事实并非如此。也许有人可以帮助我。我不是 bash 专家。事实上,这可能是我的第一个不包含“Hello World”的 bash 脚本。谢谢。


正如您的示例所示,您的脚本将由您的销售执行,而不是屏幕中的脚本。您需要告诉运行屏幕读取文件并执行它 - 这就是 -X 选项的用途。

Try

tempfile=$(mktemp)
cat > $tempfile <<EOF
cd ~/servers/StarMade/
sh StarMade-dedicated-server-linux.sh
EOF
screen -X readbuf $tempfile
screen -X paste .
rm -f $tempfile

您可以在第二个终端会话中保持屏幕运行,看看会发生什么。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 bash 脚本中使用 screen 的相关文章

随机推荐

  • apache thrift C++ 异步客户端

    我正在寻找 C 异步客户端和非阻塞 C 服务器实现 我在 apache 中看到一些邮件档案 但该活动是 2009 年末的 想知道最新的 thrift 是否支持它 我正在对 C 代码使用 cob style 选项 但生成的代码无法编译 将不胜
  • PyCharm 代码完成:如何防止空格键和“点”提交查找项

    使用代码补全时如何禁用空格键提交建议 例如 如果我尝试将某些内容命名为 req 当我完成输入并输入 空格 时 我最终会得到 request 这只是一个例子 我在键盘映射中没有看到它 并且在其他地方看到了这一点 但没有任何明显的解决方案 有一
  • 使用 BouncyCastle PGP 解密文件时出现异常

    我试图使用名为 PgpDecrypt 的类来解密客户端提供的示例文件 但是当代码来到这一行时 Stream clear pbe GetDataStream privKey 它返回一个错误 解密密钥异常 这是我的解密代码 PgpDecrypt
  • 尽管存在于目标文件中,第谷无法解析对捆绑包的依赖关系

    我为多个插件 一个功能 一个站点和一个在pom xmls 我可以从 Eclipse IDE 中运行我的应用程序 也mvn clean package构建得很好 但是 当我添加需要的插件时ca odell glazedlists 这也在我的目
  • PHP 请求 PHP Websocket

    我正在寻求有关 websocket 问题的帮助 我构建了一个简单的 HTML5 websocket 来连接我的 AngularJS 站点 websocket 通过简单的 JS 连接 和我的 PHP 服务器 连接也可以正常工作 并且发送和接收
  • 动态加载 Perl 模块

    我正在尝试创建一个可扩展的系统 通过该系统我可以将新模块编码为处理程序 我希望程序自动加载放入 Handlers 目录并符合 Moose Role 接口的任何新 pm 文件 我想知道是否有 Perl 模块或更多 Moose 认可的方法来自动
  • getpwnam 中的内存泄漏是否有修复或解决方法?

    getpwnam 中的内存泄漏是否有修复或解决方法 getpwnam does not遭受内存泄漏 事实上 后续调用将覆盖其静态内部缓冲区 这种函数是不可重入因此非线程安全 保罗建议使用getpwnam r 这是可重入版本 可以安全地在多线
  • selectItem 时的 Collection View 布局错误 (Swift 5)

    从 viewDidLoad 中选择单元格后 布局发生变化 选择单元格之前 选择单元格后 let indexPath IndexPath row SelectedFolderIndex section 0 collectionView sel
  • fields_for 使用数组进行 has_many 关联

    控制器 项目 子 类型 控制器 rb def new svn repos svn software svn hardware project sub type ProjectSubType new project sub type repo
  • 如何触发猫鼬 updateAt

    当数据发生变化时 我需要更新我的模型 可悲的是 this似乎不起作用 const mongoose require mongoose const moment require moment const Schema mongoose Sch
  • Spring MVC 中一种表单有多个 commandName

    我有一个jsp页面 我将在其中使用来自不同POJO类的许多属性 因此我需要在表单中使用两个commandName 可以在控制器中使用多个 ModelAttribute 那么如果多个 commandName 不起作用又有什么意义呢 例如我想插
  • 程序在 JFrame 高度最大化时不重新绘制

    您可以通过多种方式通过鼠标拖动来调整 JFrame 的大小 您可以调整其高度 顶部 底部边缘 您可以调整其宽度 左 右边缘 您可以调整两者的大小 在角落 您可以通过将整个窗口拖动到显示器顶部边缘来最大化它 您可以通过将其顶部 底部边缘拖动到
  • 根据 MacOS 文件夹中的文件名更改文件的创建和修改日期和时间

    我的文件夹中有很多文件 文件名如下 20190618 213557 mp4 20190620 231105 mp4 20190623 101654 mp4 我需要根据文件名更改创建日期和时间 20190618 213557 YYYYMMDD
  • PHP 从 API 响应中获取 json 汇率值

    我正在使用货币层 JSON API 来获取实时货币转换值 有谁知道我如何获取这两个值 result 值和 quote 使用 PHP 从下面的 API 响应中获取值 我是 PHP 新手 我想知道是否可以将其存储在变量中 这是 JSON suc
  • 使用 R 中的 str_count 函数对多个模式进行计数

    对 R 相当陌生 并且在使用 R 时遇到了一些困难string count函数来检测多个未知且包含在单独向量中的单词 现在 我知道如何使用以下代码检测模式的单个实例 str count mydf string Apples 我想要做的是从本
  • 如何获取pivot_wider而不是列表中的总值总和?

    data lt data frame row id 0 19 Prediction c 4 20631885375613 0 677197140556434 0 889543113836738 37 8093227242093 105 86
  • Azure 服务结构实例计数

    我正在使用 azure 服务结构开发 POC 将我的服务部署在本地集群中 并且在 Local xml 中的默认设置下运行良好 当我更改实例计数时 它会抛出以下异常 更改实例计数的选项在哪里 基本上我现在正在尝试在两个节点上运行我的服务 当默
  • 使用正则表达式进行 Spark 过滤

    我试图将文件数据过滤为每个日期的好数据和坏数据 因此将得到 2 个结果文件 从测试文件中 前 4 行需要输入良好的数据 最后 2 行需要输入错误的数据 我有 2 个问题 我没有得到任何好的数据 结果文件为空 错误的数据结果如下所示 仅选取名
  • 没有 exec 的 fork,以及共享对象使用的 pthread_mutex_t

    我正在处理一个执行以下操作的网络服务器项目fork没有exec 该程序依赖于OpenSSL 而OpenSSL需要一定数量的锁 CRYPTO NUM LOCKS准确地说 目前约为40 锁通常是pthread mutex t在 Linux 上
  • 在 bash 脚本中使用 screen

    我正在远程服务器上运行游戏服务器 我使用独立的屏幕实例使其保持运行 我现在正在创建一个脚本 可用于关闭服务器 备份所有重要文件并再次启动它 但是我在处理屏幕时遇到了一些困难 我假设我可以通过在脚本中调用 screen r 来切换到脚本中的分