Spaces:
Paused
Paused
fix: use Popen for sshd restart, match original start_sshd() pattern
Browse files- 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
|
| 172 |
-
time.sleep(
|
| 173 |
os.makedirs("/run/sshd", exist_ok=True)
|
| 174 |
-
|
| 175 |
-
|
| 176 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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')
|