- Fixed 4 broken markdown links (bad relative paths in See Also sections) - Corrected n8n port binding to 127.0.0.1:5678 (matches actual deployment) - Updated SnapRAID article with actual majorhome paths (/majorRAID, disk1-3) - Converted 67 Obsidian wikilinks to relative markdown links or plain text - Added YAML frontmatter to 35 articles missing it entirely - Completed frontmatter on 8 articles with missing fields Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
82 lines
1.8 KiB
Markdown
82 lines
1.8 KiB
Markdown
---
|
|
title: "screen — Simple Persistent Terminal Sessions"
|
|
domain: opensource
|
|
category: dev-tools
|
|
tags: [screen, terminal, ssh, linux, cli]
|
|
status: published
|
|
created: 2026-04-02
|
|
updated: 2026-04-02
|
|
---
|
|
# screen — Simple Persistent Terminal Sessions
|
|
|
|
## Problem
|
|
|
|
Same problem as tmux: SSH sessions die, jobs get killed, long-running tasks need to survive disconnects. screen is the older, simpler alternative to tmux — universally available and gets the job done with minimal setup.
|
|
|
|
## Solution
|
|
|
|
`screen` creates detachable terminal sessions. It's installed by default on many systems, making it useful when tmux isn't available.
|
|
|
|
### Installation (Fedora)
|
|
|
|
```bash
|
|
sudo dnf install screen
|
|
```
|
|
|
|
### Core Workflow
|
|
|
|
```bash
|
|
# Start a named session
|
|
screen -S mysession
|
|
|
|
# Detach (keeps running)
|
|
Ctrl+a, d
|
|
|
|
# List sessions
|
|
screen -list
|
|
|
|
# Reattach
|
|
screen -r mysession
|
|
|
|
# If session shows as "Attached" (stuck)
|
|
screen -d -r mysession
|
|
```
|
|
|
|
### Start a Background Job Directly
|
|
|
|
```bash
|
|
screen -dmS mysession bash -c "long-running-command 2>&1 | tee /root/output.log"
|
|
```
|
|
|
|
- `-d` — start detached
|
|
- `-m` — create new session even if already inside screen
|
|
- `-S` — name the session
|
|
|
|
### Capture Current Output Without Attaching
|
|
|
|
```bash
|
|
screen -S mysession -X hardcopy /tmp/screen_output.txt
|
|
cat /tmp/screen_output.txt
|
|
```
|
|
|
|
### Send a Command to a Running Session
|
|
|
|
```bash
|
|
screen -S mysession -X stuff "tail -f /root/output.log\n"
|
|
```
|
|
|
|
---
|
|
|
|
## screen vs tmux
|
|
|
|
| Feature | screen | tmux |
|
|
|---|---|---|
|
|
| Availability | Installed by default on most systems | Usually needs installing |
|
|
| Split panes | Basic (Ctrl+a, S) | Better (Ctrl+b, ") |
|
|
| Scripting | Limited | More capable |
|
|
| Config complexity | Simple | More options |
|
|
|
|
Use screen when it's already there or for quick throwaway sessions. Use tmux for anything more complex. See [tmux](tmux.md).
|
|
|
|
---
|