当通过 STDIN 提供输入时,heroku 运行 rails 控制台挂起
heroku run rails console hangs when input is provided via STDIN
使用 repo provided by heroku, I could easily get one minimal working rails app.
在我的本地机器上,我使用 heroku toolbelt 与应用程序交互:
$ heroku run rails c
Running `rails c` attached to terminal... up, run.7546
putsLoading production environment (Rails 4.0.3)
irb(main):001:0> puts 'hello'
hello
=> nil
irb(main):002:0>
我使用 <Ctrl-D>
退出,虽然它没有显示在终端上。到目前为止一切顺利。
但是,如果我通过管道将命令发送到 rails c
来启动它,我无法退出控制台。
$echo 'puts 1' | heroku run rails c
Running `rails c` attached to terminal... up, run.3181
puts 1
Loading production environment (Rails 4.0.3)
irb(main):001:0> puts 1
1
=> nil
irb(main):002:0> exit
<Ctrl-D>
和 exit
都不起作用。好像永远卡住了。
在另一个shell中,heroku ps
的相关输出:
=== run: one-off processes
run.3181 (1X): up 2015/02/03 13:46:45 (~ 6m ago): `rails c`
如果有人能阐明这种行为,那就太好了。
尝试$echo 'puts 1; exit' | heroku run rails c
我无法解释为什么你必须这样做...
这似乎是 heroku 命令行工具中的一个错误。已创建工单 here。
目前,我认为@sadleb 的回答,将 exit
附加到命令字符串,对于练习来说已经足够了。
编辑:
至此,heroku团队提出了一个workaround/solution,在上面提到的github问题:
echo 'puts 1' | heroku run --no-tty rails c
使用 repo provided by heroku, I could easily get one minimal working rails app.
在我的本地机器上,我使用 heroku toolbelt 与应用程序交互:
$ heroku run rails c
Running `rails c` attached to terminal... up, run.7546
putsLoading production environment (Rails 4.0.3)
irb(main):001:0> puts 'hello'
hello
=> nil
irb(main):002:0>
我使用 <Ctrl-D>
退出,虽然它没有显示在终端上。到目前为止一切顺利。
但是,如果我通过管道将命令发送到 rails c
来启动它,我无法退出控制台。
$echo 'puts 1' | heroku run rails c
Running `rails c` attached to terminal... up, run.3181
puts 1
Loading production environment (Rails 4.0.3)
irb(main):001:0> puts 1
1
=> nil
irb(main):002:0> exit
<Ctrl-D>
和 exit
都不起作用。好像永远卡住了。
在另一个shell中,heroku ps
的相关输出:
=== run: one-off processes
run.3181 (1X): up 2015/02/03 13:46:45 (~ 6m ago): `rails c`
如果有人能阐明这种行为,那就太好了。
尝试$echo 'puts 1; exit' | heroku run rails c
我无法解释为什么你必须这样做...
这似乎是 heroku 命令行工具中的一个错误。已创建工单 here。
目前,我认为@sadleb 的回答,将 exit
附加到命令字符串,对于练习来说已经足够了。
编辑:
至此,heroku团队提出了一个workaround/solution,在上面提到的github问题:
echo 'puts 1' | heroku run --no-tty rails c