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也帮我解决了很多问题。
我收到 输入设备不是 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也帮我解决了很多问题。