1

Rubyアプリを実行しようとすると、以下のエラーが発生します。

誰かがそれに光を当てることができますか?

ruby logger.rb
/home/swapnasa/Downloads/irclogger-master
logger.rb:14:in `read': No such file or directory - ./tmp/logger.pid (Errno::ENOENT)
        from logger.rb:14:in `<main>'

コードは次のとおりです。

#!/usr/bin/env ruby

puts Dir.pwd

$: << File.join(File.dirname(__FILE__), 'lib')

require 'irclogger'
require 'irclogger/cinch_plugin'
require 'redis'

pidfile = File.join(File.dirname(__FILE__), 'tmp', 'logger.pid')

begin
  old_pid = File.read(pidfile).to_i
  Process.kill 0, old_pid

  raise "An existing logger process is running with pid #{old_pid}. Refusing to start"
rescue Errno::ESRCH
end

File.open(pidfile, 'w') do |f|
  f.write Process.pid
end

bot = Cinch::Bot.new do
  configure do |c|
    c.server   = Config['server']
    c.channels = Config['channels']
    c.user     = Config['username']
    c.nick     = Config['nickname']
    c.realname = Config['realname']

    # cinch, oh god why?!
    c.plugins.plugins = [IrcLogger::CinchPlugin]
  end
end

IrcLogger::CinchPlugin.redis = Redis.new(url: Config['redis'])

bot.start
4

4 に答える 4

0

追加する場合:

  File.open(pidfile, 'w+') do |f|
    f.write Process.pid
  end

これにより、ファイルが自動的に作成されます。最初に作成するのではなく。

于 2013-08-21T15:07:18.693 に答える
0

tmp問題は、ディレクトリが存在しない可能性が最も高いです。次のようなことを試してください:

piddir = File.join(File.dirname(__FILE__), 'tmp')
Dir.mkdir(piddir)
pidfile = File.join(piddir, 'logger.pid')
于 2013-08-20T16:23:28.373 に答える