If your YouTube stream stops when you close SSH, first find out which process is publishing to YouTube. An FFmpeg command launched from your interactive SSH shell may exit with that session; an NGINX RTMP relay running as a system service should not normally stop merely because SSH disconnects. For a persistent FFmpeg publisher on Ubuntu, run it as a systemd service, then use its status and logs to diagnose failures.
Find out what is publishing to YouTube
NGINX RTMP and FFmpeg can play different roles. FFmpeg may publish directly to YouTube, or it may send video to NGINX, which then relays it to YouTube. The process that owns the outgoing connection to YouTube is the one whose lifetime and logs matter.
- Before disconnecting, identify the running FFmpeg and NGINX processes and the command or service that started them. Do not copy, post, or expose the stream key while inspecting command details.
- After SSH disconnects, reconnect and check whether the publisher process still exists. If the FFmpeg process is gone, establish whether it was launched from the shell, managed by a service that failed, or exited for another reason.
- If NGINX is the publisher or relay, check its system service and logs rather than assuming the SSH session owns it.
An SSH disconnect and a YouTube ingest failure are separate events until process status or logs show a connection. A process can remain alive while YouTube stops receiving a healthy stream.
Keep an FFmpeg publisher running with systemd
For a server-owned, long-running publisher on Ubuntu, create a system service that runs FFmpeg directly. An interactive shell is not a process supervisor: closing the session can take a shell-launched command with it. Ubuntu’s systemd service documentation recommends Restart=on-failure for long-running services to attempt recovery after errors. Ubuntu systemd.service manual
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →#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.
1. Create a unit with your actual input and encoding arguments
Use the real FFmpeg executable path, input, encoding options, service account, and working directory for your setup. This example is a template, not a ready-to-run publishing command:
[Unit]
Description=YouTube RTMP publisher
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=streamer
WorkingDirectory=/srv/stream
ExecStart=/usr/bin/ffmpeg [your input and encoding options] -f flv [your YouTube ingest URL]
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Replace both bracketed sections with valid arguments. FFmpeg’s RTMP documentation describes URL components and gives an FLV output example; check the syntax against the installed FFmpeg version and your actual encoder configuration. Ubuntu FFmpeg protocol manual
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.
2. Protect the stream key
Keep the stream key in private configuration accessible only to the service account. Do not put it in a world-readable unit file, source control, or public logs. Depending on your Ubuntu and systemd versions, use a suitably permission-restricted environment file or a systemd credential mechanism. Confirm that any configuration you choose does not print the secret during startup or troubleshooting.
3. Load, enable, and check the service
Save the unit as /etc/systemd/system/youtube-publisher.service, then run:
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.
sudo systemctl daemon-reload
sudo systemctl enable --now youtube-publisher.service
sudo systemctl status youtube-publisher.service
sudo journalctl -u youtube-publisher.service
Enabling the unit configures it to start with the system; --now starts it immediately. Use status for the current state and journalctl for recent output. If it fails, fix the specific FFmpeg error—such as an unreadable input, invalid arguments, codec issue, endpoint, key, or network problem—rather than repeatedly restarting it. Systemd applies start-rate limits, so repeated failures may stop automatic restart attempts until the underlying fault is addressed.
If NGINX RTMP is the publisher or relay
If NGINX itself pushes to YouTube, SSH should not be responsible for its lifetime when NGINX is properly running as a system service. Check the unit and its logs after reproducing the issue:
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
sudo systemctl status nginx
sudo journalctl -u nginx
Before reloading a changed configuration, validate it:
sudo nginx -t
If validation succeeds, reload NGINX using the method appropriate to your installation. If it fails, correct the reported configuration error first. RTMP module installation differs by NGINX build: the cited NGINX package procedure is specifically for NGINX Plus, while the RTMP module is third-party in NGINX Open Source builds. Do not assume NGINX Plus package directions apply to an Ubuntu Open Source installation. NGINX Plus RTMP module guide NGINX RTMP module
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
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.
Check the YouTube connection separately
A running publisher does not prove that YouTube is receiving video. Check the encoder or NGINX output, YouTube Live Control Room health and status, the selected endpoint and stream key, outbound network access, and whether the input is producing data continuously.
RTMP is a transport protocol; the encoder’s output format and arguments still matter. If you choose RTMPS, use the endpoint shown in YouTube Live Control Room and confirm that your encoder supports it. YouTube describes RTMPS as RTMP over TLS/SSL; switching protocols does not keep a shell-launched process alive. YouTube Help: Stream with RTMPS
systemd or tmux: which should you use?
| Need | systemd service | tmux session |
|---|---|---|
| Survive closing SSH | Yes, when the service is correctly configured and running. | Useful for detaching an operator-managed terminal session. |
| Start automatically after reboot | Yes, when enabled. | Not by itself; it does not configure system startup. |
| Restart after a process failure | Can be configured with a restart policy such as Restart=on-failure. |
Does not by itself provide the same service restart policy. |
| Status and logs | Centralized through systemd status and the journal. | Operator attaches to the session to inspect it. |
| Best fit | A persistent server publisher. | A session an operator expects to manage interactively. |
For an always-on publisher owned by the server, systemd is the practical default. A multiplexer can keep a shell session detached, but does not replace service startup, failure recovery, and centralized lifecycle management.
Troubleshoot by symptom
- FFmpeg disappears right after logout: it may have been started in the SSH shell. Move the exact working command into the system service and inspect the unit status and journal.
- The service fails to start: check the journal for the first specific error. Verify the FFmpeg path, absolute input paths, permissions for the service account, working directory, and arguments.
- The service is active but YouTube shows no healthy stream: inspect encoder output and Live Control Room status; verify the private key and exact ingest endpoint, outbound connectivity, and continuous input.
- You use RTMPS but cannot connect: take the endpoint from YouTube Live Control Room and confirm encoder support. Changing RTMP to RTMPS does not fix process supervision.
- NGINX does not start or reload: run
nginx -t, read the reported error, and inspect the NGINX journal before changing relay directives. Check that the RTMP module is installed for your specific NGINX build. - Restarts stop after repeated failures: systemd start-rate limiting may have taken effect. Find and fix the recurring failure in the journal before trying again.
Or let it run in the cloud
If your goal is simply to keep uploaded video looping on a YouTube channel, StreamNeo is an alternative to maintaining an Ubuntu publisher. Upload your recording or build a playlist, add your YouTube stream key once, and go live. It runs in the cloud, so nothing has to stay on at home; videos stream as uploaded at any quality up to 4K 60fps for one price per slot, with automatic recovery if YouTube drops the stream. The first day is free with no card. Monthly: $9.99 per month. Learn about StreamNeo, or start your free first day.
Free tools Windows power users keep installed
One-click scans. No signup required.
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.




