我在 FreeBSD 上有一个 shell 脚本,它会向正在运行的 screen 会话(运行 Minecraft 服务器)发送一些 screen stuff 命令。当我手动执行它时,这些命令会起作用。
但是,如果我将相同的脚本放入同一用户的 crontab,它确实会执行,但屏幕内容命令无法到达正在运行的屏幕进程。
我已经检查了 /var/log/cron 甚至 >> 输出到日志文件,我发现与屏幕命令无关的脚本部分确实执行了。
我的 shell 脚本如下所示:
screen -S minecraft -X stuff "say Server is going to render the world now.
"
screen -S minecraft -X stuff "say You might feel some slight turbulence.
"
screen -S minecraft -X stuff "save-all
"
screen -S minecraft -X stuff "save-off
"
cd /home/minecraft/bin/mcmap-src
./mcmap /srv/minecraft/cascada
screen -S minecraft -X stuff "save-on
"
谁能帮我这个?
[编辑]
哎呀,事实证明这与执行用户无关,但与必须使用路径“/usr/local/bin/screen”而不是“screen”有关。
固定的!
答案1
从编辑到问题。
事实证明,这与执行用户无关,但与必须使用路径“/usr/local/bin/screen”而不是“screen”有关。