tao-shen Claude Opus 4.6 commited on
Commit
9a274e2
·
1 Parent(s): b56f91e

fix: use Popen for sshd restart, match original start_sshd() pattern

Browse files
Files changed (1) hide show
  1. entrypoint.py +16 -5
entrypoint.py CHANGED
@@ -168,12 +168,23 @@ def restore():
168
  log("── RESTORE: no package list")
169
 
170
  # Restart sshd to pick up restored host keys
171
- sh("pkill -x sshd")
172
- time.sleep(0.5)
173
  os.makedirs("/run/sshd", exist_ok=True)
174
- rc, _ = sh(f"/usr/sbin/sshd -o Port={SSH_PORT} -o ListenAddress=127.0.0.1 "
175
- f"-o PermitRootLogin=yes -o PasswordAuthentication=yes -o UsePAM=yes")
176
- log(f" sshd restarted {'ok' if rc == 0 else 'FAILED'}")
 
 
 
 
 
 
 
 
 
 
 
177
 
178
  # Fix up after restore
179
  sh('ldconfig 2>/dev/null')
 
168
  log("── RESTORE: no package list")
169
 
170
  # Restart sshd to pick up restored host keys
171
+ sh("pkill sshd")
172
+ time.sleep(1)
173
  os.makedirs("/run/sshd", exist_ok=True)
174
+ proc = subprocess.Popen([
175
+ "/usr/sbin/sshd", "-D", "-e",
176
+ "-o", f"Port={SSH_PORT}",
177
+ "-o", "ListenAddress=127.0.0.1",
178
+ "-o", "PermitRootLogin=yes",
179
+ "-o", "PasswordAuthentication=yes",
180
+ "-o", "PermitEmptyPasswords=no",
181
+ "-o", "UsePAM=yes",
182
+ ])
183
+ time.sleep(0.5)
184
+ if proc.poll() is None:
185
+ log(f" sshd restarted ok PID={proc.pid}")
186
+ else:
187
+ log(f" sshd restart FAILED (exit={proc.poll()})")
188
 
189
  # Fix up after restore
190
  sh('ldconfig 2>/dev/null')