Pantavisor Tools¶
On-device CLI tools shipped with Pantavisor for development, debugging, and container control.
pventer¶
Enter a running container's namespaces.
pventer -c <container-name> [CMD ...]
Without a command, drops into the container's default shell. With a command, executes it inside the container's namespace. Uses fallbear-cmd under the hood via LXC paths.
# Drop into a shell inside the container
pventer -c my-app
# Run a command inside the container
pventer -c my-app ps aux
pvcurl¶
Lightweight HTTP client for the Pantavisor control socket. Drop-in replacement for curl in environments where curl is not available. Uses nc to send HTTP/1.0 requests over a Unix socket.
pvcurl --unix-socket <socket-path> [OPTIONS] <endpoint>
Socket paths (tried in order by pvcontrol):
- /run/pantavisor/pv/pv-ctrl — appengine / embedded mode
- /pv/pv-ctrl — alternative embedded path
- /pantavisor/pv-ctrl — default inside containers
# Query buildinfo
pvcurl --unix-socket /run/pantavisor/pv/pv-ctrl /buildinfo
# List running daemons
pvcurl --unix-socket /run/pantavisor/pv/pv-ctrl /daemons
# Send a signal to a container
pvcurl -X PUT --unix-socket /run/pantavisor/pv/pv-ctrl /signal \
--data '{"name":"my-app","signal":15}'
Supports -X, -H, --data, --upload-file, -s, -i, -v, -o, -w, --connect-timeout.
pvcontrol¶
Shell wrapper around pvcurl for common control operations. Prefers curl if available, falls back to pvcurl.
pvcontrol [-s <socket-path>] <command> [arguments]
Key commands¶
# Container and group status
pvcontrol ls # list containers in current revision
pvcontrol containers ls # list containers with status
pvcontrol containers start <name>
pvcontrol containers stop <name>
pvcontrol containers restart <name>
pvcontrol groups ls # list container groups
# xconnect service mesh
pvcontrol graph ls # show current xconnect service graph
# Daemon status (REST API daemons)
pvcontrol daemons ls # list managed daemons
pvcontrol daemons get <name>
# Status signals (sent by a container to signal readiness)
pvcontrol signal ready # signal container is ready
pvcontrol signal alive # signal container is alive (watchdog)
# System commands
pvcontrol cmd reboot [message]
pvcontrol cmd poweroff [message]
pvcontrol cmd run-gc # trigger garbage collection
pvcontrol cmd enable-ssh # start SSH server until next reboot
# Metadata
pvcontrol devmeta ls
pvcontrol devmeta save <key> <value>
pvcontrol usrmeta ls
# Build info
pvcontrol buildinfo
pvtx¶
Transaction tool for creating, modifying, and deploying Pantavisor system state revisions. Operates on JSON state documents that describe the desired system configuration (services, BSP, configs), with atomic commit and rollback via the pv-ctrl daemon.
Transaction commands¶
pvtx begin <base> [object]
pvtx add <file> | -
pvtx remove <part>
pvtx abort
pvtx commit
pvtx show
pvtx deploy <directory>
| Command | Description |
|---|---|
begin <base> [object] |
Start a new transaction. base is a revision hash, current, or empty. Omit object for a remote transaction (synced via pv-ctrl); provide a path for a local transaction written to disk. |
add <file> \| - |
Add a JSON or tarball (.json, .tar, .tar.gz, .tgz, .bz2) to the current transaction. Use - to read from stdin. |
remove <part> |
Remove a part from the revision. part can be a name (nginx), a signature path (_sigs/nginx.json), or a config path (_config/nginx). |
abort |
Discard the current transaction and clean up state. |
commit |
Commit a remote transaction to pv-ctrl; prints the new revision hash. |
show |
Print the current transaction state as JSON to stdout. |
deploy <directory> |
Write a local transaction to disk (creates .pvr/json, .pvr/config, bsp/run.json). |
Queue commands¶
Queue mode builds an ordered sequence of operations, then applies them as a single transaction.
pvtx queue new <queue> <object>
pvtx queue remove <part>
pvtx queue unpack <tarball> | -
pvtx queue process [base] [queue] [object]
| Command | Description |
|---|---|
queue new <queue> <object> |
Initialize a new queue at <queue>, saving objects at <object>. |
queue remove <part> |
Enqueue a remove operation for <part>. |
queue unpack <tarball> \| - |
Enqueue an unpack step for the given tarball (or stdin). |
queue process [base] [queue] [object] |
Execute the queue against base revision (current by default). |
Environment variables¶
| Variable | Default | Description |
|---|---|---|
PVTXDIR |
/var/pvr-sdk/pvtx |
Temp directory for transaction state |
PVTX_OBJECT_BUF_SIZE |
— | Buffer size for saving objects (512B–10M) |
PVTX_CTRL_BUF_SIZE |
— | Buffer size for pv-ctrl I/O (16K–10M) |
Socket paths (auto-detected): /pv/pv-ctrl (container root) or /pantavisor/pv-ctrl (inside containers).
# Remote transaction: modify current revision and commit
pvtx begin current
pvtx add /path/to/package.tar.gz
pvtx remove nginx
pvtx show
pvtx commit
# Local transaction: build a state on disk
pvtx begin empty /tmp/objects
cat package.tgz | pvtx add -
pvtx deploy /deploy/path
# Queue-based workflow: batch operations, then apply
pvtx queue new /tmp/queue /tmp/objects
pvtx queue remove nginx
pvtx queue unpack /path/to/package.tgz
pvtx begin empty
pvtx queue process
pvtx show