sh 脚本给 screen 传递命令【非交互模式】

之所以要在 sh 中给 screen 传递命令是因为阿里云的 99 的服务器实在是太拉跨了,并且经常会出现各种诡异的 cpu 跑满的情况。目前上面部署了几个静态站点还有 umami 的统计。

先介绍下 screen:

screen是linux下的一种视窗多重复用管理程序。在使用telnetSSH远程登录linux时,如果连接非正常中断,重新连接时,系统将开一个新的session,无法恢复原来的session.screen命令可以解决这个问题。

umami、moe-conter 都是通过 screen 启动的,这就导致如果服务器重启了就得重新启动 screen,然后在 screen 中运行命令来启动服务。

阿里云的服务器经常莫名其妙 cpu 就 100 了,当然也可能是收到了攻击,但是具体情况感觉还是太频繁了,此时最简单的办法就是直接强制重启。

如果直接把要执行的命令加到 screen 命令之后写入到 sh 脚本,命令无法正常运行。合格的写法应该是下面的样子(一种形式,还有其他形式):

screen -S moe  -dmS
screen -x -S moe -p 0 -X stuff "cd /root/Moe-Counter
"
screen -x -S moe -p 0 -X stuff "sh start.sh
"

注意screen -x -S moe -p 0 -X stuff “cd /root/Moe-Counter 一行指令是回车换行编写的,相当于把回车代入到了 cd 命令后面,这样写的好处是省去了插入回车,也可以用下面的写法:

screen -xS screenName -p0 -X stuff $'\n'

$’\n’ 代表回车,我觉得直接换行是最简单的。

有了启动脚本,剩下的就是编辑服务,添加自启动功能:

vim /etc/systemd/system/myautostart.service

创建自定义服务,添加代码:

[Unit]
Description=My autostart Service
After=network.target

[Service]
User=firefly
ExecStart=/root/sh/start_all.sh
Restart=always
RestartSec=1

[Install]
WantedBy=multi-user.target

重新加载服务:

systemctl daemon-reload

此时在重启,服务就可以自动启动了,省去了人工启动的麻烦。

☆版权☆

* 网站名称:obaby@mars
* 网址:https://oba.by/
* 个性:https://oba.by/
* 本文标题: 《sh 脚本给 screen 传递命令【非交互模式】》
* 本文链接:https://lang.bi/2024/10/18372
* 短链接:https://oba.by/?p=18372
* 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。


You may also like

34 comments

  1.  Level 4
    Google Chrome 127 Google Chrome 127 GNU/Linux GNU/Linux cn中国–贵州–贵阳 移动

    这 纹身和腿太明显了 下面的文章和代码都没心思看了😂

      1.  Level 3
        Google Chrome 130 Google Chrome 130 Mac OS X 10.15 Mac OS X 10.15 cn中国–江苏–无锡 电信

        写代码的时候一直想着姐的淫纹

    1. 公主 Queen 
      Google Chrome 126 Google Chrome 126 Mac OS X 10.15 Mac OS X 10.15 cn中国–山东–青岛 联通

      screen是linux下的一种视窗多重复用管理程序。在使用telnet或SSH远程登录linux时,如果连接非正常中断,重新连接时,系统将开一个新的session,无法恢复原来的session.screen命令可以解决这个问题。

      1.  Level 5
        WebView 4 WebView 4 Android 12 Android 12 cn中国–广东–广州 电信

        我记起来了,我也用过这个命令,有些命令执行很久的,如果断开连接就会终止执行,这个命令可以解决 dance,裙子也越来越短了,好看

  2.   Level 7
    Google Chrome 130 Google Chrome 130 Mac OS X 10.15 Mac OS X 10.15 cn中国–浙江–杭州 华数

    不想要的阿里云可以来我这里换一枚 follow 邀请码。

    1. 公主 Queen 
      Google Chrome 126 Google Chrome 126 Android 10 Android 10 cn中国–山东–青岛 联通

      嗯嗯 不然就得重启了 上去再逐个启动 太烦人了

  3. Level 5
    Google Chrome 109 Google Chrome 109 Windows 10 Windows 10 cn中国–上海–上海 腾讯云

    灵妹妹美大腿的图案是什么,我记得脚上是蝴蝶,这个不会是蜜蜂吧?

    1. 公主 Queen 
      Google Chrome 126 Google Chrome 126 Android 10 Android 10 cn中国–山东–青岛 联通

      linux常用命令,买个域名,买台服务器就可以了。
      如果不想自己搭建直接去wordpress上开个账号也行

  4. Level 1
    Google Chrome 129 Google Chrome 129 Windows 10 Windows 10 cn中国–重庆–重庆–渝中区 电信

    一点进来,媳妇就问我:好看么? 我说:我说我在看技术资料你信么?

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注