From 7883107bdfb32a0854c0a3da449d52d688a1e60d Mon Sep 17 00:00:00 2001 From: Ryan Cavicchioni Date: Mon, 24 Mar 2025 11:16:03 -0500 Subject: [PATCH] create a new method for inferring the PPID --- app.rb | 28 ++++++++++++++++++++-------- config/puma.rb | 3 --- 2 files changed, 20 insertions(+), 11 deletions(-) delete mode 100644 config/puma.rb diff --git a/app.rb b/app.rb index de43f76..be2735b 100644 --- a/app.rb +++ b/app.rb @@ -28,7 +28,6 @@ DEFAULT_FLAKEY = 50 ENV_PREFIX = "KUBERNAUT" CLK_TCK = 100 -PID_FILE_PATH = "/run/app/pid".freeze PROC_UPTIME_PATH = "/proc/uptime".freeze SECONDS_PER_YEAR = 31_556_952 @@ -109,7 +108,7 @@ end class TickTock def initialize - @pid = master_pid + @pid = ppid @procfs_f = format "/proc/%s/stat", @pid puts @pid end @@ -178,9 +177,22 @@ class Sleep end end -def master_pid - pid_s = File.read PID_FILE_PATH - Integer pid_s.strip +def ppid + pid = Process.pid + # self + ps = File.open "/proc/#{pid}/stat", &:readline + ps = ps.split(" ") + ppid = Integer(ps[3]) + + # ppid + ps = File.open "/proc/#{ppid}/stat", &:readline + ps = ps.split(" ") + + if ps[1].include? "ruby" + ppid + else + pid + end end def system_uptime @@ -350,19 +362,19 @@ get "/snowflake" do end post "/quit" do - Process.kill("TERM", master_pid) + Process.kill("TERM", ppid) nil end post "/halt" do - Process.kill("QUIT", master_pid) + Process.kill("QUIT", ppid) nil end get "/pid" do pretty = params.key? :pretty - jsonify({puma: master_pid, pid: Process.pid}, pretty:) + jsonify({ppid: ppid, pid: Process.pid}, pretty:) end get "/token" do diff --git a/config/puma.rb b/config/puma.rb deleted file mode 100644 index 2d4827a..0000000 --- a/config/puma.rb +++ /dev/null @@ -1,3 +0,0 @@ -# workers 3 -pidfile "/run/app/pid" -preload_app!