mina-unicorn 0.0.1 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/mina/unicorn/tasks.rb +17 -17
- data/lib/mina/unicorn/utility.rb +109 -0
- data/lib/mina/unicorn/version.rb +1 -1
- data/mina-unicorn.gemspec +1 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3953720784f4afa682c908bd63633eae2f5ddf36
|
4
|
+
data.tar.gz: e0763a88ccdd4f25f49cec03b743a420042836b1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6fdf3143af1deb7aef4b77593f0ffcdd557ff37b55c9c675a1e6e9ffcf161975ef73a2e0252740361896111190284e78e91df7212a87654e3b86f0a859a2a7d9
|
7
|
+
data.tar.gz: 193a1fd2522318594abb6a788abb98e1ba14c85df580f2d187e502348d687f0c119d717972f72ec93a92824f7c2b3fb3465f038197f8f66ba2a31ab30219b2c1
|
data/README.md
CHANGED
@@ -54,7 +54,7 @@ $ mina unicorn:start
|
|
54
54
|
|
55
55
|
## Contributing
|
56
56
|
|
57
|
-
1. Fork it ( http://github.com
|
57
|
+
1. Fork it ( http://github.com/openteam/mina-unicorn/fork )
|
58
58
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
59
59
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
60
60
|
4. Push to the branch (`git push origin my-new-feature`)
|
data/lib/mina/unicorn/tasks.rb
CHANGED
@@ -1,35 +1,35 @@
|
|
1
1
|
require 'mina/bundler'
|
2
2
|
require 'mina/rails'
|
3
|
+
require 'mina/unicorn/utility'
|
3
4
|
|
4
5
|
namespace :unicorn do
|
6
|
+
include Mina::Unicorn::Utility
|
7
|
+
|
5
8
|
set_default :unicorn_role, -> { user }
|
6
9
|
set_default :unicorn_env, -> { fetch(:rails_env, 'production') }
|
7
10
|
set_default :unicorn_config, -> { "#{deploy_to}/#{current_path}/config/unicorn.rb" }
|
8
11
|
set_default :unicorn_pid, -> { "#{deploy_to}/#{current_path}/tmp/pids/unicorn.pid" }
|
9
12
|
set_default :unicorn_cmd, -> { "#{bundle_prefix} unicorn" }
|
13
|
+
set_default :unicorn_restart_sleep_time, -> { 2 }
|
14
|
+
|
15
|
+
desc "Start Unicorn master process"
|
16
|
+
task start: :environment do
|
17
|
+
queue start_unicorn
|
18
|
+
end
|
10
19
|
|
11
|
-
desc "
|
12
|
-
task :
|
13
|
-
queue
|
14
|
-
echo "-----> Starting unicorn service"
|
15
|
-
#{echo_cmd %[cd #{deploy_to}/#{current_path}; #{unicorn_cmd} -c #{unicorn_config} -D -E #{unicorn_env}]}
|
16
|
-
}
|
20
|
+
desc "Stop Unicorn"
|
21
|
+
task stop: :environment do
|
22
|
+
queue kill_unicorn('QUIT')
|
17
23
|
end
|
18
24
|
|
19
|
-
desc "
|
20
|
-
task :
|
21
|
-
queue
|
22
|
-
echo "-----> Stoping unicorn service"
|
23
|
-
#{echo_cmd %[kill -s QUIT `cat #{unicorn_pid}`]}
|
24
|
-
}
|
25
|
+
desc "Immediately shutdown Unicorn"
|
26
|
+
task shutdown: :environment do
|
27
|
+
queue kill_unicorn('TERM')
|
25
28
|
end
|
26
29
|
|
27
30
|
desc "Restart unicorn service"
|
28
|
-
task :
|
29
|
-
queue
|
30
|
-
echo "-----> Restart unicorn service"
|
31
|
-
#{echo_cmd %[kill -s USR2 `cat #{unicorn_pid}`]}
|
32
|
-
}
|
31
|
+
task restart: :environment do
|
32
|
+
queue restart_unicorn
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
@@ -0,0 +1,109 @@
|
|
1
|
+
# Ported from: https://github.com/sosedoff/capistrano-unicorn/blob/master/lib/capistrano-unicorn/utility.rb
|
2
|
+
|
3
|
+
module Mina
|
4
|
+
module Unicorn
|
5
|
+
module Utility
|
6
|
+
|
7
|
+
# Check if a remote process exists using its pid file
|
8
|
+
#
|
9
|
+
def remote_process_exists?(pid_file)
|
10
|
+
"[ -e #{pid_file} ] && kill -0 `cat #{pid_file}` > /dev/null 2>&1"
|
11
|
+
end
|
12
|
+
|
13
|
+
# Stale Unicorn process pid file
|
14
|
+
#
|
15
|
+
def old_unicorn_pid
|
16
|
+
"#{unicorn_pid}.oldbin"
|
17
|
+
end
|
18
|
+
|
19
|
+
# Command to check if Unicorn is running
|
20
|
+
#
|
21
|
+
def unicorn_is_running?
|
22
|
+
remote_process_exists?(unicorn_pid)
|
23
|
+
end
|
24
|
+
|
25
|
+
# Command to check if stale Unicorn is running
|
26
|
+
#
|
27
|
+
def old_unicorn_is_running?
|
28
|
+
remote_process_exists?(old_unicorn_pid)
|
29
|
+
end
|
30
|
+
|
31
|
+
# Get unicorn master process PID (using the shell)
|
32
|
+
#
|
33
|
+
def get_unicorn_pid(pid_file=unicorn_pid)
|
34
|
+
"`cat #{pid_file}`"
|
35
|
+
end
|
36
|
+
|
37
|
+
# Get unicorn master (old) process PID
|
38
|
+
#
|
39
|
+
def get_old_unicorn_pid
|
40
|
+
get_unicorn_pid(old_unicorn_pid)
|
41
|
+
end
|
42
|
+
|
43
|
+
# Send a signal to a unicorn master processes
|
44
|
+
#
|
45
|
+
def unicorn_send_signal(signal, pid=get_unicorn_pid)
|
46
|
+
"kill -s #{signal} #{pid}"
|
47
|
+
end
|
48
|
+
|
49
|
+
# Kill Unicorns in multiple ways O_O
|
50
|
+
#
|
51
|
+
def kill_unicorn(signal)
|
52
|
+
script = <<-END
|
53
|
+
if #{unicorn_is_running?}; then
|
54
|
+
echo "Stopping Unicorn...";
|
55
|
+
#{unicorn_send_signal(signal)};
|
56
|
+
else
|
57
|
+
echo "Unicorn is not running.";
|
58
|
+
fi;
|
59
|
+
END
|
60
|
+
|
61
|
+
script
|
62
|
+
end
|
63
|
+
|
64
|
+
# Start the Unicorn server
|
65
|
+
#
|
66
|
+
def start_unicorn
|
67
|
+
%Q%
|
68
|
+
if [ -e "#{unicorn_pid}" ]; then
|
69
|
+
if kill -0 `cat #{unicorn_pid}` > /dev/null 2>&1; then
|
70
|
+
echo "Unicorn is already running!";
|
71
|
+
exit 0;
|
72
|
+
fi;
|
73
|
+
|
74
|
+
rm #{unicorn_pid};
|
75
|
+
fi;
|
76
|
+
|
77
|
+
echo "Starting Unicorn...";
|
78
|
+
cd #{deploy_to}/#{current_path} && BUNDLE_GEMFILE=#{bundle_gemfile} #{unicorn_cmd} -c #{unicorn_config} -E #{unicorn_env} -D;
|
79
|
+
%
|
80
|
+
end
|
81
|
+
|
82
|
+
# Restart the Unicorn server
|
83
|
+
#
|
84
|
+
def restart_unicorn
|
85
|
+
%Q%
|
86
|
+
#{duplicate_unicorn}
|
87
|
+
|
88
|
+
sleep #{unicorn_restart_sleep_time}; # in order to wait for the (old) pidfile to show up
|
89
|
+
|
90
|
+
if #{old_unicorn_is_running?}; then
|
91
|
+
#{unicorn_send_signal('QUIT', get_old_unicorn_pid)};
|
92
|
+
fi;
|
93
|
+
%
|
94
|
+
end
|
95
|
+
|
96
|
+
def duplicate_unicorn
|
97
|
+
%Q%
|
98
|
+
if #{unicorn_is_running?}; then
|
99
|
+
echo "Duplicating Unicorn...";
|
100
|
+
#{unicorn_send_signal('USR2')};
|
101
|
+
else
|
102
|
+
#{start_unicorn}
|
103
|
+
fi;
|
104
|
+
%
|
105
|
+
end
|
106
|
+
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
data/lib/mina/unicorn/version.rb
CHANGED
data/mina-unicorn.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mina-unicorn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- tab
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-11-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: mina
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.3'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.3'
|
41
55
|
description: Unicorn tasks for Mina
|
42
56
|
email:
|
43
57
|
- tab@openteam.ru
|
@@ -52,6 +66,7 @@ files:
|
|
52
66
|
- Rakefile
|
53
67
|
- lib/mina/unicorn.rb
|
54
68
|
- lib/mina/unicorn/tasks.rb
|
69
|
+
- lib/mina/unicorn/utility.rb
|
55
70
|
- lib/mina/unicorn/version.rb
|
56
71
|
- mina-unicorn.gemspec
|
57
72
|
homepage: https://github.com/openteam/mina-unicorn
|