diff --git a/changelog.d/7624.bugfix b/changelog.d/7624.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..ce55b2cc3d10b51536c1696d8ad8694f464307c0
--- /dev/null
+++ b/changelog.d/7624.bugfix
@@ -0,0 +1 @@
+Make `synctl restart` start synapse if it wasn't running.
diff --git a/synctl b/synctl
index 81e9bf6b5c391ec2575ff939e8ba4757152e060d..960fd357ee490ed40f698b9fdfa401e5fbdbcc09 100755
--- a/synctl
+++ b/synctl
@@ -328,7 +328,7 @@ def main():
         if start_stop_synapse:
             if not stop(pidfile, "synapse.app.homeserver"):
                 has_stopped = False
-        if not has_stopped:
+        if not has_stopped and action == "stop":
             sys.exit(1)
 
     # Wait for synapse to actually shutdown before starting it again