运行lein repl:在后台无头

时间:2017-06-03 16:03:56

标签: bash clojure signals leiningen

目标:在后台运行lein无头

我正在尝试运行一个leiningen REPL无头,没有投入终端。也就是说,我想做

$ lein repl :headless &

但是几秒后bash报告它已被停止

$ [2]+  Stopped                 lein repl :headless

在zsh和sh中运行此结果具有相同的结果。这些shell打印接收到的信号SIGTTIN,这意味着该过程试图从STDIN读取,尽管不是终端控制过程。

以下作品:

$ bash -c "lein repl :headless &"
$ lein repl :headless </dev/null &

我看过repl :headless does not work without stdin,但我无法使用那里的东西来解决我的问题。

其他一些细节:

#!/bin/bash
lein repl :headless & 

进入脚本test.bash并运行./test.bash也可以。但是,将行更改为lein repl :headless并运行./test.bash &则不会。

正在运行

$ lein repl :headless &
$ disown %1

也行不通;该进程的ps报告已终止。

我通常也会使用tmux运行reattach-to-user-namespace,但我在tmux内部和外部以及多个终端仿真器(iTerm2和终端)中都尝试过此操作。如果有帮助,here are my stty -a settings

1 个答案:

答案 0 :(得分:4)

lein trampoline repl :headless &将解决此问题。

您可以阅读this了解相关信息。