部署时旧Puma进程未终止,资源占用过高求助
Puma部署后旧进程未关闭导致资源占用过高问题
执行新部署时,新的Puma实例正常启动,但旧进程并未关闭,导致服务器资源被大量占用。检查部署脚本后未发现明显问题。
我使用mina gem进行部署,部署流程包含两个文件:
- bin/deploy 文件:
# bin/deploy file system "mina deploy" system "mina puma:stop" system "mina puma_clean" system "mina puma:start"
- mina deploy.rb 文件:
# mina deploy.rb require 'mina/rails' require 'mina/rvm' require 'mina/puma' require 'mina/whenever' require 'mina/git' # -- Basic settings: set :application_name, 'app' set :user, 'app' set :domain, '8.8.8.8' set :deploy_to, '/var/www/app' set :repository, 'git@github.com:repository.git' set :branch, 'master' set :rails_env, 'production' # -- RVM set :rvm_use_path, "/usr/local/rvm/scripts/rvm" task :remote_environment do invoke :'rvm:use', 'ruby-3.1.2' end # -- Shared Dirs set :shared_dirs, fetch(:shared_dirs, []).push( 'pids','log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', 'public/system', 'public/assets', 'public/packs', 'node_modules' ) set :shared_files, fetch(:shared_files, []).push('config/database.yml') # -- Setup task :setup do command %{rvm install ruby-3.1.2} command %{gem install bundler} end # -- If puma thinks it's running but ain't task :puma_clean do command "rm /var/www/app/shared/tmp/sockets/puma*" end desc "Deploys the current version to the server." task :deploy do invoke :'git:ensure_pushed' deploy do command %(source ~/.profile) command %(source ~/.nvm/nvm.sh) command %(nvm use 18.12.1) command %(node -v) command %(ruby -v) invoke :'git:clone' #invoke :'sidekiq:stop' invoke :'deploy:link_shared_paths' invoke :'bundle:install' invoke :'rails:db_migrate' invoke :'rails:assets_precompile' invoke :'deploy:cleanup' on :launch do in_path(fetch(:current_path)) do command %(source ~/.profile) invoke :'puma:restart' invoke :'whenever:update' command %{mkdir -p tmp/} command %{touch tmp/restart.txt} end end end run(:local){ puts 'Done!' } end
即便使用上述脚本,服务器上仍存在多个Puma进程(截图显示有多个puma相关进程在运行)。我已尝试查找能在部署时终止Puma PID的命令但未成功,恳请帮助。
补充说明:
部署时执行mina puma:stop命令,终端输出如下:
-----> Using RVM environment "ruby-3.1.2" Using /usr/local/rvm/gems/ruby-3.1.2 -----> Stopping Puma... Puma is not running! Connection to 8.8.8.8 closed. Elapsed time: 2.14 seconds
我在mina puma仓库中未找到“Puma is not running!”这条提示,这是否意味着执行stop命令时无法终止旧Puma进程?
内容的提问来源于stack exchange,提问作者Thiago David
相关产品推荐
相关产品推荐

