awesome-repositories.com
Blog
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
amoffat avatar

amoffat/sh

0
View on GitHub↗
7,231 stars·507 forks·Python·MIT·10 vuessh.readthedocs.io/en/latest↗

Sh

sh is a Python process management library that provides programmatic wrappers and interfaces for controlling Unix system commands and child process lifecycles. It functions as an asynchronous process wrapper, allowing shell commands and system programs to run within a non-blocking event loop.

The library maps command-line arguments and standard input/output streams to native Python functions and objects. It includes a process lifecycle controller to manage signal groups, execution timeouts, and process permissions for spawned child processes.

The project provides capabilities for executable file lookup, I/O redirection via pipes and buffers, and execution context configuration to maintain shared environment variables and working directories across multiple commands. It also includes security controls for specifying user IDs and managing file descriptor inheritance.

Features

  • Programmatic Command Wrappers - Maps Unix system program calls to native Python functions, translating command-line arguments and I/O streams into programmatic interfaces.
  • Process Lifecycle Managers - Manages signal groups, execution timeouts, and process permissions for spawned child processes.
  • Process Lifecycle Management - Manages how tasks start, stop, and terminate via process group signals and execution timeouts.
  • Subprocess Management Libraries - Provides a high-level Python interface for executing and controlling external system processes with advanced lifecycle and timeout handling.
  • Asynchronous Event Loops - Implements a non-blocking event loop to execute system processes without freezing the main Python thread.
  • Asynchronous Process Wrappers - Provides a non-blocking execution layer for running shell commands within a Python event loop.
  • Process Management Libraries - Provides a programmatic Python interface for launching and controlling system processes as an alternative to manual subprocess calls.
  • Asynchronous Execution - Executes system processes using a non-blocking event loop to maintain main thread responsiveness.
  • Command Execution Contexts - Provides reusable context objects to maintain shared environment variables and working directories across multiple system commands.
  • Execution Context Management - Stores common arguments, environment variables, and working directories in a reusable context.
  • System Command Interfaces - Provides an interface mapping command-line arguments and I/O streams to native Python objects.
  • Shell Automation - Automates sequences of system commands by managing shared environments, working directories, and I/O pipes.
  • I/O Redirections - Captures and routes standard input and output streams using system pipes and buffers.
  • System Program Interfaces - Provides a programmatic interface for invoking Unix system programs and mapping their command-line arguments to native constructs.
  • Process Signal Management - Sends signals to entire process groups to ensure synchronized termination of spawned tasks.
  • DevOps Tools - Listed in the “DevOps Tools” section of the Awesome Python awesome list.
  • Infrastructure and Cloud - Subprocess replacement for shell-like commands.
  • Process Management - Simplifies launching and interacting with system subprocesses.

Historique des stars

Graphique de l'historique des stars pour amoffat/shGraphique de l'historique des stars pour amoffat/sh

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Questions fréquentes

Que fait amoffat/sh ?

sh is a Python process management library that provides programmatic wrappers and interfaces for controlling Unix system commands and child process lifecycles. It functions as an asynchronous process wrapper, allowing shell commands and system programs to run within a non-blocking event loop.

Quelles sont les fonctionnalités principales de amoffat/sh ?

Les fonctionnalités principales de amoffat/sh sont : Programmatic Command Wrappers, Process Lifecycle Managers, Process Lifecycle Management, Subprocess Management Libraries, Asynchronous Event Loops, Asynchronous Process Wrappers, Process Management Libraries, Asynchronous Execution.

Quelles sont les alternatives open-source à amoffat/sh ?

Les alternatives open-source à amoffat/sh incluent : supervisor/supervisor — Supervisor is a process control system for Unix environments that ensures background processes remain running by… aheckmann/gm — gm is a JavaScript image processing library and Node.js manipulation tool that serves as a programmatic wrapper for… cloudflare/tableflip — Tableflip is a zero-downtime restart library and system utility designed to transfer network sockets and open file… sindresorhus/execa — Execa is a promise-based process execution library that serves as a wrapper for the Node.js child process module. It… symfony/process — Symfony Process is a PHP library for executing external commands in separate operating-system processes with full… mit-pdos/xv6-public — xv6 is a Unix-like educational operating system designed for teaching kernel concepts. It is implemented as an…

Alternatives open source à Sh

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Sh.
  • supervisor/supervisorAvatar de Supervisor

    Supervisor/supervisor

    9,068Voir sur GitHub↗

    Supervisor is a process control system for Unix environments that ensures background processes remain running by automatically restarting them if they crash or exit. It functions as a daemon manager that provides a centralized way to start, stop, and monitor the lifecycle of long-running background tasks. The system utilizes a client-server architecture to control multiple processes through a command line interface. This allows for the orchestration of system services and background daemon control without requiring manual shell intervention. The tool covers application process supervision an

    Python
    Voir sur GitHub↗9,068
  • aheckmann/gmAvatar de aheckmann

    aheckmann/gm

    6,980Voir sur GitHub↗

    gm is a JavaScript image processing library and Node.js manipulation tool that serves as a programmatic wrapper for the GraphicsMagick engine. It translates JavaScript method calls into shell commands to automate the resizing, cropping, and transformation of images. The library provides an interface to execute specific GraphicsMagick operations while allowing raw command passthrough for custom arguments or engine features not covered by the standard API. Its capabilities cover geometric manipulation, color and tone adjustment, and image quality optimization. It includes tools for image compo

    JavaScript
    Voir sur GitHub↗6,980
  • cloudflare/tableflipAvatar de cloudflare

    cloudflare/tableflip

    3,155Voir sur GitHub↗

    Tableflip is a zero-downtime restart library and system utility designed to transfer network sockets and open file descriptors between process instances. It serves as a process lifecycle manager that coordinates the handoff of TCP, UDP, and Unix domain sockets from a parent process to a child process to maintain active sessions during service upgrades. The tool facilitates seamless restarts by utilizing file-based process ID tracking and system signals to trigger the spawning of new process instances. It ensures continuous service availability by handing over network listeners and using readi

    Gogogolanggraceful-restarts
    Voir sur GitHub↗3,155
  • sindresorhus/execaAvatar de sindresorhus

    sindresorhus/execa

    7,517Voir sur GitHub↗

    Execa is a promise-based process execution library that serves as a wrapper for the Node.js child process module. It functions as a shell command runner and subprocess management tool, simplifying the execution of external commands and binaries. The library distinguishes itself through automatic argument escaping to prevent shell injection and the use of abort signals for graceful process termination. It also provides an inter-process communication wrapper for exchanging structured JSON data and messages between parent and child processes. Its capabilities cover a broad range of process I/O

    JavaScript
    Voir sur GitHub↗7,517
  • Voir les 30 alternatives à Sh→