From 565648300b3c79330d4f3b75161ebefce9414e04 Mon Sep 17 00:00:00 2001 From: fhemberger Date: Mon, 12 Sep 2011 21:36:14 +0200 Subject: Fix an issue in 'watch' and 'preview' where main process is terminated with child processes still running --- Rakefile | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/Rakefile b/Rakefile index f67596f4..881929a6 100644 --- a/Rakefile +++ b/Rakefile @@ -60,12 +60,11 @@ task :watch do compassPid = Process.spawn("compass watch") trap("INT") { - Process.kill(9, jekyllPid) - Process.kill(9, compassPid) - exit 0 + [jekyllPid, compassPid].each { |pid| Process.kill(9, pid) rescue Errno::ESRCH } + exit 0 } - Process.wait + [jekyllPid, compassPid].each { |pid| Process.wait(pid) } end desc "preview the site in a web browser" @@ -77,13 +76,11 @@ task :preview do rackupPid = Process.spawn("rackup --port #{server_port}") trap("INT") { - Process.kill(9, jekyllPid) - Process.kill(9, compassPid) - Process.kill(9, rackupPid) - exit 0 + [jekyllPid, compassPid, rackupPid].each { |pid| Process.kill(9, pid) rescue Errno::ESRCH } + exit 0 } - Process.wait + [jekyllPid, compassPid, rackupPid].each { |pid| Process.wait(pid) } end # usage rake new_post[my-new-post] or rake new_post['my new post'] or rake new_post (defaults to "new-post") -- cgit v1.2.1