Bash 脚本后台执行 "the input device is not a TTY"

Bash script background execution "the input device is not a TTY"

我收到 输入设备不是 TTY 错误,而下面的命令正在 运行 我的 bash script. 我在 docker 看到了类似的问题,但是 bash 脚本没有一个 post。除了使用 & 之外,后台的 运行ning 命令还有其他选项吗?

echo "Starting the simulation server ..."

cd simulator-server && ./simServer-VegasMixed.sh &

daemon 根据您的脚本将任何进程转换为守护进程,您可以尝试一下。

始终可以选择使用 systemd 和创建服务。这真的取决于你的脚本是什么。

假设您是 运行 一个 linux 发行版(不是 BSD 等)。创建文件 /usr/local/lib/systemd/system/simServer-VegasMixed

[Unit]
Description=simServer VegasMixed


[Service]
Type=simple
ExecStart=/opt/simServer-VegasMixed/simServer-VegasMixed.sh

[Install]
WantedBy=multi-user.target
Alias=simServer.service

这将创建一个启动时启动的简单服务,您也可以使用

控制该服务

systemctl 停止 simServer systemctl 启动 simServer systemctl 状态 simServer

如果您不希望该服务在启动时启动,请删除 WantedBy 行。

如果有 server/service,那么这将是启动服务的推荐方式。

我终于明白了!我在单独的会话中使用 tmux 运行 我的命令。

tmux new -d './simServer-VegasMixed.sh'

这个post也帮我解决了很多问题。