Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11To keep an app running after you close SSH, run it under a process supervisor, configure automatic restarts, register that supervisor at boot, save the process or container definition, and monitor both logs and application health. For a Node.js or other host-run game service, PM2 is a practical choice. For an app already packaged as a container, use Docker’s restart policy. Use only one restart authority for each app or container.
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
“Forever” means recovering automatically from ordinary process crashes and VPS reboots. It does not mean the provider, network, database, third-party services, disk, or application code can never fail. The procedures below are designed to make those failures visible and recoverable rather than leaving a game API, leaderboard service, or web app tied to an open terminal.
As an Amazon Associate I earn from qualifying purchases.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →What has to survive when you disconnect
An SSH session is only a way to administer a server. If your app is attached to that shell, closing the terminal can send it a hangup signal or terminate the session’s process group. Tools such as nohup may detach a process temporarily, but they do not provide a durable boot configuration, crash recovery, health reporting, or an operator-friendly log workflow.
A production app needs four separate guarantees:
- Session independence: the app is owned by a supervisor, not by your interactive shell.
- Crash recovery: the supervisor starts a replacement process when the app exits unexpectedly.
- Boot persistence: the supervisor itself starts after a VPS reboot and knows which app to launch.
- Operational visibility: you can see startup errors, restart loops, dependency failures, and real request health.
A running process is not proof that users can play, sign in, submit a score, or fetch a match. A process can remain alive while initialization failed, a database connection is broken, or every request returns an error. Pair supervision with logs and a health check.
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
Choose one restart authority
First decide where the workload runs. Do not have two independent systems attempting to restart the same process. Docker’s documentation specifically warns against combining Docker restart policies with host-level process managers because the two authorities can conflict.
| Approach | Best fit | Recovery and boot behavior | Observability | Main caution |
|---|---|---|---|---|
| PM2 on the VPS host | Node.js, Python, shell, Ruby, PHP, or binary apps running directly on the host | Automatic restarts; a generated startup hook; pm2 save persists the process list |
pm2 logs, pm2 monit, status/list commands, and an optional dashboard |
Use sensible delays or backoff and implement graceful shutdown |
| Docker restart policy | Apps already packaged as containers | Docker restarts containers according to the selected policy; the Docker service must start at boot | Container logs plus an application-level health check | Do not add a competing host-level manager for the same container |
| systemd or Supervisor | Host-managed services where OS-native supervision is preferred | The selected service manager owns startup and restart behavior | Depends on the manager and the VPS logging setup | Document exactly which service owns restarts |
For a small game backend installed directly on a VPS, PM2 keeps the setup approachable. For a reproducible image-based deployment, Docker’s policy should remain the authority. systemd or Supervisor can be appropriate when your team already standardizes on them, but adding them on top of PM2 or Docker creates ambiguous ownership.
Prepare the app before enabling automatic recovery
Give the process a deterministic start command
Write down the command that starts the app from a clean login: its working directory, runtime version, environment variables, port, and configuration files. A supervisor can restart only what it can start reliably. Test the command manually from the intended deployment directory before handing it to PM2 or Docker.
Separate secrets from the process definition
Keep database credentials, signing keys, and service tokens in the VPS environment or your deployment secret mechanism. Saving a PM2 process list or a container configuration should not turn credentials into source-controlled text. Confirm that the supervised process receives the same variables after a reboot.
Decide what “healthy” means
Define an endpoint or equivalent check that represents a usable service. For a game API, that might verify that the HTTP server is accepting requests and that required database or queue dependencies are reachable. A check that only returns “the process exists” will miss failed initialization and dependency outages.
Run a host-installed app with PM2
PM2 is a process manager commonly used for Node.js and can also supervise Python, shell, Ruby, PHP, and binary workloads. Its documented workflow is to start a named process, generate a startup hook, save the process list, then use its logs and monitoring commands during operation.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
1. Start the app with a stable name
From the application directory, start the real entry point and assign a name that will still make sense months later:
cd /srv/arena-api
pm2 start app.js --name arena-api
Replace app.js with your entry point. If the app is a script or binary, use the corresponding executable and arguments. The name is how you will target logs, restarts, and status checks, so avoid generic names such as node or test.
Confirm that PM2 sees the process:
pm2 list
pm2 status
Before proceeding, make a real request to the service and inspect its output. A process that immediately exits or repeatedly restarts should be fixed before boot persistence is configured.
2. Generate the boot integration
Run:
pm2 startup
PM2 detects the VPS init system and prints a command tailored to that host. Copy and run the generated command exactly as displayed, with the privileges it requests. The generated hook is what starts PM2 when the machine boots; merely installing PM2 or starting an app once does not provide that guarantee.
3. Save the process list
After the app is running correctly, freeze the desired list:
pm2 save
The saved list is the boot-time definition PM2 restores. Run pm2 save again whenever you intentionally add, remove, rename, or reconfigure a managed app. Otherwise a reboot can restore an older list or no app at all.
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
4. Verify logs and live metrics
Use the built-in views while the app is under load:
pm2 logs arena-api
pm2 monit
pm2 logs helps identify failed imports, missing environment variables, port conflicts, and database errors. pm2 monit provides a live operational view. Retain logs and rotate them before they consume the VPS disk; a full disk can prevent both the app and its supervisor from working.
Free tools Windows power users keep installed
One-click scans. No signup required.
5. Configure restart timing
Immediate restarts are useful for a transient crash but harmful when a dependency is down. A database outage can otherwise create a tight loop that repeatedly starts, fails, and consumes CPU and log space. PM2 documents fixed restart delays and exponential backoff. Backoff increases the wait between failures and resets after the process has run stably, reducing pressure during an extended dependency outage.
Choose a delay that matches the dependency and alerting policy. The goal is not to hide failures; it is to give an unavailable service time to recover while preserving clear logs and a health signal.
Run a container with Docker’s restart policy
If the app is already packaged as a container, let Docker own its restart behavior. Do not run PM2 on the VPS to restart the container and also configure Docker to restart it. Pick one authority and make the container itself responsible for the application process inside it.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
1. Build and start the container
Build the image using your normal deployment process, then start it with a restart policy. For example:
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
docker build -t arena-api:current .
docker run -d
--name arena-api
--restart unless-stopped
-p 8080:8080
arena-api:current
The exact image name, port, volumes, and environment settings depend on your app. The important property is that Docker, not an SSH shell or a second supervisor, owns the container lifecycle. If you use Compose, express the equivalent restart policy in the service definition and deploy that definition consistently.
2. Ensure Docker starts at boot
A container policy matters only while the Docker service is running. Enable the Docker service using the VPS distribution’s service-management procedure, then verify after a controlled reboot that Docker starts and restores the container. The app’s startup command, mounted data, and environment variables must all be available at that time.
3. Inspect container state and output
docker ps
docker inspect arena-api
docker logs --tail 200 arena-api
Container status tells you whether Docker considers the container running; logs explain why the application may still be unusable. Add an application-level health check that exercises the dependencies important to players and operators. PM2’s container documentation also describes exposing a web health endpoint when pm2-runtime is used inside a container, but the restart authority should remain clear.
Make shutdowns graceful
Automatic replacement is not enough during deployments or planned restarts. A hard kill can discard in-flight requests, truncate writes, or leave queue messages in an uncertain state. PM2 describes graceful shutdown as five stages:
- Receive the shutdown notification.
- Stop accepting new work and drain traffic.
- Finish requests already in flight.
- Release database, queue, socket, and other resources.
- Exit so the supervisor can restart or replace the process.
Implement handlers for the termination signals your runtime receives, including SIGTERM and SIGINT. Set a bounded drain period so a stuck request cannot block deployment forever. Test the handler with a maintenance restart and confirm that clients receive a deliberate response rather than a dropped connection.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Health checks, logs, and alerts
Process status is only one signal
A supervisor can report “online” while the app cannot reach its database, has loaded the wrong configuration, or returns errors for every request. A health endpoint should distinguish basic liveness from readiness when your architecture needs that distinction. Liveness answers whether the process can respond; readiness answers whether it should receive user traffic.
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
Make logs useful under pressure
- Include timestamps and a request or session identifier where appropriate.
- Record startup configuration failures explicitly without printing secrets.
- Log dependency connection failures with retry timing and the eventual recovery.
- Rotate retained logs before disk exhaustion.
- Keep supervisor and application logs available after a reboot so the first failure is not lost.
Alert on behavior, not only restarts
Repeated restarts, failed health checks, rising response errors, and a filling disk each represent different failure modes. A process that never crashes but serves errors will not trigger a restart alert, so monitor the endpoint that users actually need.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsTest recovery instead of assuming it
Perform these checks during a maintenance window and record the expected result for your team:
- Close SSH and confirm that the app still serves a real request.
- Restart the supervisor or container and verify graceful draining, a clean start, and a healthy endpoint.
- Stop the app process or container deliberately and confirm that the selected authority recreates it.
- Reboot the VPS and verify that the supervisor, process definition, ports, environment, and dependencies return in the correct order.
- Inspect logs for the stop, restart, and health transition.
- Restore normal traffic only after the health check is healthy.
These are operator procedures, not a promise that every VPS or application will recover identically. Provider-level outages, unreachable networks, corrupted disks, expired credentials, and broken releases require a separate incident or rollback plan.
Troubleshoot the failures people commonly mistake for “random downtime”
| Symptom | Likely cause | What to check |
|---|---|---|
| The app stops when SSH closes | It is still attached to the shell | Move ownership to PM2, Docker, systemd, or Supervisor; do not rely on an interactive session |
| It works until the VPS reboots | Boot integration or the saved definition is missing | For PM2, rerun pm2 startup and pm2 save; for Docker, verify the daemon starts and the restart policy is present |
| The process is “online” but requests fail | Initialization or a dependency is unhealthy | Read application logs and test the real health endpoint, database, queue, and external services |
| CPU and logs spike after an outage | A tight crash loop | Add a fixed delay or exponential backoff and fix the unavailable dependency |
| Deployments drop active players | Immediate termination | Implement signal handling, drain traffic, finish in-flight work, release resources, and then exit |
| Two systems keep restarting the same workload | Competing restart authorities | Remove either the host-level manager or the Docker restart policy and document the remaining owner |
| Restarts eventually fail because the VPS is full | Unrotated logs or growing application data | Inspect disk usage, configure rotation, and retain only the logs needed for operations and incident review |
A practical operating policy for a VPS game service
For a host-installed service, make PM2 the documented owner: one named process, one saved process list, one generated boot hook, and one team runbook for logs, backoff, graceful shutdown, and health checks. For a containerized service, make Docker the owner: one image definition, one restart policy, one boot-enabled Docker service, and one health endpoint. In either case, write down the start command, required environment, listening port, data locations, dependency order, rollback procedure, and the person or alert responsible for intervention.
This arrangement gives you automatic recovery from normal crashes and reboots without pretending that software can run literally forever. Reliability comes from making every recovery path explicit, testing it deliberately, and treating health, logs, and dependency state as part of the application rather than as optional extras.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




