QA@IT
«回答へ戻る

プログラムの誤りを訂正

376
-自己解決しました。お騒がせしました。
+解決しました。ありがとうございます。
 
 最終的にはこのようなrakeファイルになりました。
 
 ```ruby
-require 'systemu'
-
 namespace :redis do
   	desc "TODO"
   	task :start => :environment do
-  		command = %q(nohup redis-server /usr/local/etc/redis.conf &)
-  		sys = systemu command
+  		command = %q(redis-server /usr/local/etc/redis.conf)
+  		systemu command
   		p command
-  		
-  		pid = sys.first.pid
-  		File::open("lib/tasks/redis/redis.pid","w") {|f|
-  			f.write(pid+1)
-		}
   	end
 
   	task :stop => :environment do
   		pid = 0
-  		File::open("lib/tasks/redis/redis.pid") {|f|
+  		File::open("/usr/local/var/run/redis.pid") {|f|
   			pid = f.gets
 		}
 
   	end
 end
 ```
+
+このプログラムは、ledsunさんの回答にあるConfigのオプションを指定してあることが前提です。

解決しました。ありがとうございます。

最終的にはこのようなrakeファイルになりました。

namespace :redis do
    desc "TODO"
    task :start => :environment do
        command = %q(redis-server /usr/local/etc/redis.conf)
        systemu command
        p command
    end

    task :stop => :environment do
        pid = 0
        File::open("/usr/local/var/run/redis.pid") {|f|
            pid = f.gets
        }

        command = "kill " + pid
        systemu command

        p command
    end
end

このプログラムは、ledsunさんの回答にあるConfigのオプションを指定してあることが前提です。

解決しました。ありがとうございます。

最終的にはこのようなrakeファイルになりました。

```ruby
namespace :redis do
  	desc "TODO"
  	task :start => :environment do
  		command = %q(redis-server /usr/local/etc/redis.conf)
  		systemu command
  		p command
  	end

  	task :stop => :environment do
  		pid = 0
  		File::open("/usr/local/var/run/redis.pid") {|f|
  			pid = f.gets
		}

  		command = "kill " + pid
  		systemu command

  		p command
  	end
end
```

このプログラムは、ledsunさんの回答にあるConfigのオプションを指定してあることが前提です。

回答を投稿

自己解決しました。お騒がせしました。

最終的にはこのようなrakeファイルになりました。

require 'systemu'

namespace :redis do
    desc "TODO"
    task :start => :environment do
        command = %q(nohup redis-server /usr/local/etc/redis.conf &)
        sys = systemu command
        p command

        pid = sys.first.pid
        File::open("lib/tasks/redis/redis.pid","w") {|f|
            f.write(pid+1)
        }
    end

    task :stop => :environment do
        pid = 0
        File::open("lib/tasks/redis/redis.pid") {|f|
            pid = f.gets
        }

        command = "kill " + pid
        systemu command

        p command
    end
end
自己解決しました。お騒がせしました。

最終的にはこのようなrakeファイルになりました。

```ruby
require 'systemu'

namespace :redis do
  	desc "TODO"
  	task :start => :environment do
  		command = %q(nohup redis-server /usr/local/etc/redis.conf &)
  		sys = systemu command
  		p command
  		
  		pid = sys.first.pid
  		File::open("lib/tasks/redis/redis.pid","w") {|f|
  			f.write(pid+1)
		}
  	end

  	task :stop => :environment do
  		pid = 0
  		File::open("lib/tasks/redis/redis.pid") {|f|
  			pid = f.gets
		}

  		command = "kill " + pid
  		systemu command

  		p command
  	end
end
```