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


You may also like

23 comments

  1.  Level 4
    Google Chrome 127 Google Chrome 127 GNU/Linux GNU/Linux 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 6
    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上海市 腾讯云

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

发表回复

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