将屏幕命令转换为 tmux

将屏幕命令转换为 tmux

有谁熟悉如何从 tmux 中的 crontab 运行程序而不是屏幕会话?

例如,与此等效的命令行是什么:

@reboot cd /home/morggin/mcserver && screen -dmS McMyAdmin ./MCMA2_Linux_x86_64

答案1

正如 Jason 所指出的,您可以通过一个命令来完成此操作。你可以做

 tmux new-session -d -s session_name your_command

-d新会话与终端分离。当不是从 cron 作业而不是从终端启动时,可能不需要它,但这不会有什么坏处。 (new的缩写new-session)

这有一个主要缺点,因为它会在your_command终止时关闭该会话,并且如果将任何有用的内容写入该会话,该信息就会丢失。我建议您使用多行脚本来启动此类命令,并在重新启动时从 cron 中启动:

#!/bin/bash
cd /home/morggin/mcserver
tmux new-session -d -s McMyAdmin -n McMyAdmin
tmux send-keys "./MCMA2_Linux_x86_64"

无论如何,它都会在 tmux 创建的 bash 会话中启动程序(还有其他方法可以防止程序退出以关闭窗口,但我记得有些方法涉及双重bash启动)。-n为会话中的窗口命名,如果您决定在会话中添加多个窗口的创建,则非常有用。

相关内容