

[TremaでOpenFlowプログラミング](https://yasuhito.github.io/trema-book/)

上記サイトを参考にTremaのインストールを終え、実行すると以下のようなエラーが出ました。  
`command.rb`を色々いじってみても結果は変わらず分かりません。お助け頂けると嬉しいです。  
環境は、CentOS 7です。

[code]

    [root@localhost hello_trema]# ./bin/trema run ./lib/hello_trema.rb -c trema.conf
    /opt/rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/trema-0.10.1/lib/trema/command.rb:153:in `create_pid_file': HelloTrema is already running. (RuntimeError)
        from /opt/rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/trema-0.10.1/lib/trema/command.rb:29:in `run'
        from /opt/rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/trema-0.10.1/bin/trema:68:in `block (2 levels) in <module:App>'
        from /opt/rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/gli-2.13.4/lib/gli/command_support.rb:126:in `call'
        from /opt/rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/gli-2.13.4/lib/gli/command_support.rb:126:in `execute'
        from /opt/rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/gli-2.13.4/lib/gli/app_support.rb:296:in `block in call_command'
        from /opt/rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/gli-2.13.4/lib/gli/app_support.rb:309:in `call'
        from /opt/rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/gli-2.13.4/lib/gli/app_support.rb:309:in `call_command'
        from /opt/rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/gli-2.13.4/lib/gli/app_support.rb:83:in `run'
        from /opt/rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/trema-0.10.1/bin/trema:291:in `<module:App>'
        from /opt/rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/trema-0.10.1/bin/trema:14:in `<module:Trema>'
        from /opt/rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/trema-0.10.1/bin/trema:11:in `<top (required)>'
        from ./bin/trema:29:in `load'
        from ./bin/trema:29:in `<main>'
    
[/code]


CC BY-SA 4.0
2018-07-11T17:13:34.093
45524
2018-07-11T17:54:47.703
2018-07-11T17:21:56.350
3060
29265
question
ruby centos
CentOSでのTrema(0.10.1)の実行時のエラーについて


[terma/command.rb](https://github.com/trema/trema/blob/0.10.1/lib/trema/command.rb#L153)
のソースを見るかぎり、`FileTest.exists? pid_file`が `true`のため、例外が発生しているようです。  
`command.rb`を直接触れるのであれば、例えば、153行目を以下のように修正して実行してください。

[code]

    puts "DEBUG: #{pid_file}"
    raise "#{name} is already running." if running?
    
[/code]

実行すると、ターミナルに、`pid_file`のパスが出力されると思いますので、  
pid_fileが存在しないか確認してください。存在するようであれば、削除してから再実行してください。

ただ、`pid_file`は一時ディレクトリ内にあるはずなので、通常は、起動毎に変るはずなのですが。いずれにしても、デバッグプリントを入れてみることで切り分けができると思います。


CC BY-SA 4.0
2018-07-11T17:54:47.703
45525
2018-07-11T17:54:47.703
45524
answer