我查找了我发现的每个教程,但没有一个真正回答我的问题。 我正在寻找制作脚本的方法:
现在这里是我写的shell脚本:
#!/bin/bash
# Launcher script for js bot
screen -c ./_shared-conf/multi-screen.conf -dmS botScreen
screen -r botScreen
screen -d -m nodejs init_bot.js
并在multi-screen.conf中:
multiuser on
acladd rackover # adding every user manually as i don't know how to add group
acladd jj
你能帮帮我吗?感谢
编辑:我一直在尝试使用TMUX,到目前为止我已经尝试过这个:
Again, Alice and Bob ssh into the same server
Alice, as before, creates a new tmux session: tmux new -s alice. tmux will
implicitly create a new window group
Bob does not join that same session. Instead he starts a new session and
connects that session to the same window group as Alice’s session: tmux new -s bob -t alice
但这也不起作用。
答案 0 :(得分:0)
问题似乎是您的shell脚本仅在退出屏幕后才启动bot。让我们来看看命令的作用。
screen -c ./_shared-conf/multi-screen.conf -dmS botScreen
这将使用给定的配置创建一个屏幕,并且该屏幕不会附加。
screen -r botScreen
这会附加到在和之前创建的屏幕,因此将一直等到您退出或从屏幕分离(Ctrl + A,D)。
screen -d -m nodejs init_bot.js
这将创建另一个运行脚本的分离屏幕。
解决方案是用一个命令完成所有操作。要简单地运行该bot,然后在bot停止后终止屏幕,请在末尾添加nodejs命令:
screen -c ./_shared-conf/multi-screen.conf -dmS botScreen nodejs init_bot.js
如果您希望屏幕在机器人停止运行后继续运行,则可以使用here中的解决方案:
screen -c ./_shared-conf/multi-screen.conf -dmS botScreen sh -c 'nodejs init_bot.js; exec bash'
这将与机器人在屏幕上运行sh
,然后在机器人终止时运行bash以在屏幕内获取交互式外壳。