有谁熟悉如何从 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
为会话中的窗口命名,如果您决定在会话中添加多个窗口的创建,则非常有用。