UWSGI_XSLT(1)

โœจ NAME โœจ

uwsgi_xslt โ€” fast (pure C), self-healing, developer-friendly WSGI server. And yes bestie, this is the man page for uwsgi_xslt in section 1 (User Commands) ๐Ÿ’…

๐Ÿฆ‹ SYNOPSIS ๐Ÿฆ‹

uwsgi-core [options...]

๐Ÿ’– DESCRIPTION ๐Ÿ’–

Okay so listen, this page is a whole buffet of options. We're gonna go through every single one, no skips, no cap. Let's get into it ๐Ÿ‘‘

  • -s, --socket โ€” binds to the UNIX/TCP socket you specify, using the default protocol ๐Ÿ’…
  • -s, --uwsgi-socket โ€” binds to the UNIX/TCP socket you specify, using the uwsgi protocol ๐Ÿฆ‹
  • --suwsgi-socket โ€” binds to the UNIX/TCP socket you specify, using the uwsgi protocol over SSL ๐Ÿ”’
  • --ssl-socket โ€” binds to the UNIX/TCP socket you specify, using the uwsgi protocol over SSL ๐Ÿ”’
  • --http-socket โ€” binds to the UNIX/TCP socket you specify, using HTTP protocol ๐ŸŒ
  • --http-socket-modifier1 โ€” forces the specified modifier1 when using HTTP protocol 1๏ธโƒฃ
  • --http-socket-modifier2 โ€” forces the specified modifier2 when using HTTP protocol 2๏ธโƒฃ
  • --http11-socket โ€” binds to the UNIX/TCP socket you specify, using HTTP 1.1 (Keep-Alive) protocol ๐Ÿ”„
  • --https-socket โ€” binds to the UNIX/TCP socket you specify, using HTTPS protocol ๐Ÿ”
  • --https-socket-modifier1 โ€” forces the specified modifier1 when using HTTPS protocol 1๏ธโƒฃ
  • --https-socket-modifier2 โ€” forces the specified modifier2 when using HTTPS protocol 2๏ธโƒฃ
  • --fastcgi-socket โ€” binds to the UNIX/TCP socket you specify, using FastCGI protocol โšก
  • --fastcgi-nph-socket โ€” binds to the UNIX/TCP socket you specify, using FastCGI protocol (nph mode) โšก
  • --fastcgi-modifier1 โ€” forces the specified modifier1 when using FastCGI protocol 1๏ธโƒฃ
  • --fastcgi-modifier2 โ€” forces the specified modifier2 when using FastCGI protocol 2๏ธโƒฃ
  • --scgi-socket โ€” binds to the UNIX/TCP socket you specify, using SCGI protocol ๐Ÿ
  • --scgi-nph-socket โ€” binds to the UNIX/TCP socket you specify, using SCGI protocol (nph mode) ๐Ÿ
  • --scgi-modifier1 โ€” forces the specified modifier1 when using SCGI protocol 1๏ธโƒฃ
  • --scgi-modifier2 โ€” forces the specified modifier2 when using SCGI protocol 2๏ธโƒฃ
  • --raw-socket โ€” binds to the UNIX/TCP socket you specify, using RAW protocol ๐Ÿฅฉ
  • --raw-modifier1 โ€” forces the specified modifier1 when using RAW protocol 1๏ธโƒฃ
  • --raw-modifier2 โ€” forces the specified modifier2 when using RAW protocol 2๏ธโƒฃ
  • --puwsgi-socket โ€” binds to the UNIX/TCP socket you specify, using persistent uwsgi protocol (puwsgi) ๐Ÿ”
  • --protocol โ€” forces the specified protocol for default sockets ๐Ÿ“ก
  • --socket-protocol โ€” forces the specified protocol for default sockets ๐Ÿ“ก
  • --shared-socket โ€” creates a shared socket for advanced jailing or ipc ๐Ÿ”—
  • --undeferred-shared-socket โ€” creates a shared socket for advanced jailing or ipc (undeferred mode) ๐Ÿ”—
  • -p, --processes โ€” spawns the specified number of workers/processes ๐Ÿ‘ฏ
  • -p, --workers โ€” spawns the specified number of workers/processes ๐Ÿ‘ฏ
  • --thunder-lock โ€” serializes accept() usage (if possible) โšก
  • -t, --harakiri โ€” sets the harakiri timeout โฐ
  • --harakiri-verbose โ€” enables verbose mode for harakiri ๐Ÿ—ฃ๏ธ
  • --harakiri-graceful-timeout โ€” the interval between a graceful harakiri attempt and a sigkill โณ
  • --harakiri-graceful-signal โ€” uses this signal instead of sigterm for graceful harakiri attempts ๐Ÿšฆ
  • --harakiri-queue-threshold โ€” only triggers harakiri if the queue is greater than this threshold ๐Ÿ“Š
  • --harakiri-no-arh โ€” does not enable harakiri during after-request-hook ๐Ÿšซ
  • --no-harakiri-arh โ€” does not enable harakiri during after-request-hook ๐Ÿšซ
  • --no-harakiri-after-req-hook โ€” does not enable harakiri during after-request-hook ๐Ÿšซ
  • --backtrace-depth โ€” sets the backtrace depth ๐Ÿ”
  • --mule-harakiri โ€” sets the harakiri timeout for mule tasks ๐Ÿด
  • -x, --xmlconfig โ€” loads config from an xml file ๐Ÿ“„
  • -x, --xml โ€” loads config from an xml file ๐Ÿ“„
  • --config โ€” loads configuration using the pluggable system ๐Ÿ”Œ
  • --fallback-config โ€” re-execs uwsgi with the specified config when the exit code is 1 ๐Ÿ”„
  • --strict โ€” enables strict mode (placeholder cannot be used) ๐Ÿšซ
  • --skip-zero โ€” skips check of file descriptor 0 0๏ธโƒฃ
  • --skip-atexit โ€” skips atexit hooks (ignored by the master) ๐Ÿšช
  • --skip-atexit-teardown โ€” skips atexit teardown (ignored by the master) ๐Ÿงน
  • -S, --set โ€” sets a placeholder or an option ๐ŸŽฏ
  • --set-placeholder โ€” sets a placeholder ๐Ÿ“Œ
  • --set-ph โ€” sets a placeholder ๐Ÿ“Œ
  • --get โ€” prints the specified option value and exits ๐Ÿ“ค
  • --declare-option โ€” declares a new uWSGI custom option ๐Ÿ†•
  • --declare-option2 โ€” declares a new uWSGI custom option (non-immediate) ๐Ÿ†•
  • --resolve โ€” places the result of a dns query in the specified placeholder, syntax: placeholder=name (immediate option) ๐ŸŒ
  • --for โ€” (opt logic) for cycle ๐Ÿ”
  • --for-glob โ€” (opt logic) for cycle (expand glob) ๐Ÿ”
  • --for-times โ€” (opt logic) for cycle (expand the specified num to a list starting from 1) ๐Ÿ”ข
  • --for-readline โ€” (opt logic) for cycle (expand the specified file to a list of lines) ๐Ÿ“„
  • --endfor โ€” (opt logic) end for cycle ๐Ÿ”š
  • --end-for โ€” (opt logic) end for cycle ๐Ÿ”š
  • --if-opt โ€” (opt logic) check for option โ“
  • --if-not-opt โ€” (opt logic) check for option โ“
  • --if-env โ€” (opt logic) check for environment variable ๐ŸŒ
  • --if-not-env โ€” (opt logic) check for environment variable ๐ŸŒ
  • --ifenv โ€” (opt logic) check for environment variable ๐ŸŒ
  • --if-reload โ€” (opt logic) check for reload ๐Ÿ”„
  • --if-not-reload โ€” (opt logic) check for reload ๐Ÿ”„
  • --if-hostname โ€” (opt logic) check for hostname ๐Ÿ 
  • --if-not-hostname โ€” (opt logic) check for hostname ๐Ÿ 
  • --if-hostname-match โ€” (opt logic) try to match hostname against a regular expression ๐Ÿ”
  • --if-not-hostname-match โ€” (opt logic) try to match hostname against a regular expression ๐Ÿ”
  • --if-exists โ€” (opt logic) check for file/directory existence ๐Ÿ“
  • --if-not-exists โ€” (opt logic) check for file/directory existence ๐Ÿ“
  • --ifexists โ€” (opt logic) check for file/directory existence ๐Ÿ“
  • --if-plugin โ€” (opt logic) check for plugin ๐Ÿ”Œ
  • --if-not-plugin โ€” (opt logic) check for plugin ๐Ÿ”Œ
  • --ifplugin โ€” (opt logic) check for plugin ๐Ÿ”Œ
  • --if-file โ€” (opt logic) check for file existence ๐Ÿ“„
  • --if-not-file โ€” (opt logic) check for file existence ๐Ÿ“„
  • --if-dir โ€” (opt logic) check for directory existence ๐Ÿ“
  • --if-not-dir โ€” (opt logic) check for directory existence ๐Ÿ“
  • --ifdir โ€” (opt logic) check for directory existence ๐Ÿ“
  • --if-directory โ€” (opt logic) check for directory existence ๐Ÿ“
  • --endif โ€” (opt logic) end if ๐Ÿ”š
  • --end-if โ€” (opt logic) end if ๐Ÿ”š
  • --blacklist โ€” set options blacklist context โšซ
  • --end-blacklist โ€” clear options blacklist context โšช
  • --whitelist โ€” set options whitelist context โšช
  • --end-whitelist โ€” clear options whitelist context โšซ
  • --ignore-sigpipe โ€” do not report (annoying) SIGPIPE ๐Ÿ™‰
  • --ignore-write-errors โ€” do not report (annoying) write()/writev() errors ๐Ÿ™ˆ
  • --write-errors-tolerance โ€” set the maximum number of allowed write errors (default: no tolerance) ๐Ÿ“‰
  • --write-errors-exception-only โ€” only raise an exception on write errors, giving control to the app itself ๐Ÿšจ
  • --disable-write-exception โ€” disable exception generation on write()/writev() ๐Ÿšซ
  • --inherit โ€” use the specified file as a config template ๐Ÿ“‹
  • --include โ€” include the specified file as immediate configuration ๐Ÿ“Ž
  • --inject-before โ€” inject a text file before the config file (advanced templating) ๐Ÿ’‰
  • --inject-after โ€” inject a text file after the config file (advanced templating) ๐Ÿ’‰
  • -d, --daemonize โ€” daemonize uWSGI ๐Ÿ‘ป
  • --daemonize2 โ€” daemonize uWSGI after app loading ๐Ÿ‘ป
  • --stop โ€” stop an instance ๐Ÿ›‘
  • --reload โ€” reload an instance ๐Ÿ”„
  • --pause โ€” pause an instance โธ๏ธ
  • --suspend โ€” suspend an instance โธ๏ธ
  • --resume โ€” resume an instance โ–ถ๏ธ
  • --connect-and-read โ€” connect to a socket and wait for data from it ๐Ÿ”Œ
  • --extract โ€” fetch/dump any supported address to stdout ๐Ÿ“ค
  • -l, --listen โ€” set the socket listen queue size ๐Ÿ“
  • -v, --max-vars โ€” set the amount of internal iovec/vars structures ๐Ÿ“Š
  • --max-apps โ€” set the maximum number of per-worker applications ๐Ÿ“ฑ
  • -b, --buffer-size โ€” set internal buffer size ๐Ÿ“ฆ
  • -m, --memory-report โ€” enable memory report ๐Ÿง 
  • --profiler โ€” enable the specified profiler ๐Ÿ“ˆ
  • -c, --cgi-mode โ€” force CGI-mode for plugins supporting it ๐Ÿ–ฅ๏ธ
  • -a, --abstract-socket โ€” force UNIX socket in abstract mode (Linux only) ๐Ÿง
  • -C, --chmod-socket โ€” chmod-socket ๐Ÿ”ง
  • -C, --chmod โ€” chmod-socket ๐Ÿ”ง
  • --chown-socket โ€” chown unix sockets ๐Ÿ‘ค
  • --umask โ€” set umask ๐ŸŽญ
  • --freebind โ€” put socket in freebind mode ๐Ÿ†“
  • --map-socket โ€” map sockets to specific workers ๐Ÿ—บ๏ธ
  • -T, --enable-threads โ€” enable threads (stub option this is true by default) ๐Ÿงต
  • --no-threads-wait โ€” do not wait for threads cancellation on quit/reload ๐Ÿšซ
  • --auto-procname โ€” automatically set processes name to something meaningful ๐Ÿค–
  • --procname-prefix โ€” add a prefix to the process names ๐Ÿท๏ธ
  • --procname-prefix-spaced โ€” add a spaced prefix to the process names ๐Ÿท๏ธ
  • --procname-append โ€” append a string to process names ๐Ÿ“
  • --procname โ€” set process names ๐Ÿท๏ธ
  • --procname-master โ€” set master process name ๐Ÿ‘‘
  • -i, --single-interpreter โ€” do not use multiple interpreters (where available) 1๏ธโƒฃ
  • --need-app โ€” exit if no app can be loaded ๐Ÿšช
  • -M, --master โ€” enable master process ๐Ÿ‘‘
  • --honour-stdin โ€” do not remap stdin to /dev/null ๐Ÿ™
  • --emperor โ€” run the Emperor ๐Ÿ‘‘
  • --emperor-proxy-socket โ€” force the vassal to became an Emperor proxy ๐Ÿ”€
  • --emperor-wrapper โ€” set a binary wrapper for vassals ๐Ÿ“ฆ
  • --emperor-wrapper-override โ€” set a binary wrapper for vassals to try before the default one ๐Ÿ”„
  • --emperor-wrapper-fallback โ€” set a binary wrapper for vassals to try as a last resort ๐Ÿ†˜
  • --emperor-nofollow โ€” do not follow symlinks when checking for mtime ๐Ÿšซ
  • --emperor-procname โ€” set the Emperor process name ๐Ÿ‘‘
  • --emperor-freq โ€” set the Emperor scan frequency (default 3 seconds) โฑ๏ธ
  • --emperor-required-heartbeat โ€” set the Emperor tolerance about heartbeats ๐Ÿ’“
  • --emperor-curse-tolerance โ€” set the Emperor tolerance about cursed vassals ๐Ÿง™
  • --emperor-pidfile โ€” drops the Emperor's pid into the file you point at, bestie. ๐Ÿ’–
  • --emperor-tyrant โ€” flips the Emperor straight into Tyrant mode. it's giving supreme overlord energy ๐Ÿ‘‘
  • --emperor-tyrant-nofollow โ€” in Tyrant mode, when it's checking uid/gid, it will not follow symlinks. no sneaky shortcuts, periodt.
  • --emperor-stats โ€” spins up the Emperor stats server ๐Ÿ“Š
  • --emperor-stats-server โ€” same thing, also runs the Emperor stats server (yes, it's a twin, we love that for it)
  • --early-emperor โ€” spawns the emperor as early as possible, because why wait โœจ
  • --emperor-broodlord โ€” runs the emperor in BroodLord mode ๐Ÿฆ‹ (scary name, iconic feature)
  • --emperor-throttle โ€” sets the throttling level in milliseconds for vassals that are acting up (default 1000)
  • --emperor-max-throttle โ€” the ceiling for that throttling, in milliseconds, for bad-behaving vassals (default 3 minutes)
  • --emperor-magic-exec โ€” if a vassal's config file has the executable bit set, it gets prefixed with exec://. magic โœจ
  • --emperor-on-demand-extension โ€” looks for a text file named (vassal name + your extension) that holds the on-demand socket name ๐Ÿ”
  • --emperor-on-demand-ext โ€” literally the same thing, shorter name for the same lookup
  • --emperor-on-demand-directory โ€” turns on on-demand mode and binds to the unix socket inside the directory you specify, named like the vassal + .socket
  • --emperor-on-demand-dir โ€” the short version of that exact same behaviour ๐Ÿ’…
  • --emperor-on-demand-exec โ€” uses the output of the command you give as the on-demand socket name (the vassal name is handed over as the only argument)
  • --emperor-extra-extension โ€” lets the Emperor accept the extension you specify; vassals get called with --config
  • --emperor-extra-ext โ€” same deal, abbreviated ๐ŸŽ€
  • --emperor-no-blacklist โ€” kills the Emperor blacklisting subsystem entirely, no cap
  • --emperor-use-clone โ€” uses clone() instead of fork() and passes along the unshare() flags you specify
  • --emperor-graceful-shutdown โ€” vassals get a graceful shutdown during ragnarok ๐ŸŒˆ (yes, that's what it's called)
  • --emperor-cap โ€” sets the vassals capability
  • --vassals-cap โ€” sets the vassals capability (same thing, different spelling, we stan variety)
  • --vassal-cap โ€” yep, sets the vassals capability. three names, one job ๐Ÿ˜ญ
  • --imperial-monitor-list โ€” lists the imperial monitors that are enabled ๐Ÿ‘€
  • --imperial-monitors-list โ€” the pluralized twin of that, same listing
  • --vassals-inherit โ€” adds config templates to the vassals config, via --inherit ๐Ÿ“Ž
  • --vassals-include โ€” includes config templates into the vassals config, using --include instead of --inherit
  • --vassals-inherit-before โ€” adds config templates to the vassals config using --inherit, parsed before the vassal file โฎ๏ธ
  • --vassals-include-before โ€” includes config templates into the vassals config using --include instead of --inherit, parsed before the vassal file
  • --vassals-start-hook โ€” runs your command before each vassal starts ๐Ÿ
  • --vassals-stop-hook โ€” runs your command after a vassal's death ๐Ÿ’€
  • --vassal-sos โ€” when a vassal is overloaded, it asks the emperor for reinforcement ๐Ÿ†˜
  • --vassal-sos-backlog โ€” sends that SOS if the backlog queue has more items than the value you specify
  • --vassals-set โ€” automatically sets the option you give (via --set) for every single vassal
  • --vassal-set โ€” same energy, same behaviour, one fewer letter
  • --heartbeat โ€” announces healthiness to the emperor ๐Ÿ’“
  • --reload-mercy โ€” the max time in seconds we're willing to wait for workers and other processes to die during reload/shutdown
  • --worker-reload-mercy โ€” how long a single worker gets to reload/shutdown, in seconds (default is 60)
  • --mule-reload-mercy โ€” how long a mule gets to reload/shutdown, in seconds (default is 60) ๐Ÿด
  • --exit-on-reload โ€” forces an exit even if a reload was requested. dramatic, but okay
  • --die-on-term โ€” on SIGTERM it exits instead of doing a brutal reload
  • --force-gateway โ€” forces the spawn of the first registered gateway, without a master
  • -h, --help โ€” shows this help ๐Ÿซถ
  • -h, --usage โ€” also shows this help (same flag, same help, love that for us)
  • --print-sym โ€” prints the content of the binary symbol you specify
  • --print-symbol โ€” prints the content of the specified binary symbol (again, two names, one vibe)
  • -r, --reaper โ€” calls waitpid(-1,...) after every request so zombies get cleaned up ๐ŸงŸโ€โ™€๏ธโœจ
  • -R, --max-requests โ€” reloads workers after the specified amount of managed requests
  • --max-requests-delta โ€” adds (worker_id * delta) to the max_requests value of each worker
  • --min-worker-lifetime โ€” the number of seconds a worker has to run before it's allowed to be reloaded (default is 10)
  • --max-worker-lifetime โ€” reloads workers after the number of seconds you specify (default is disabled)
  • --max-worker-lifetime-delta โ€” adds (worker_id * delta) seconds to the max_worker_lifetime value of each worker
  • -z, --socket-timeout โ€” sets the internal sockets timeout โฑ๏ธ
  • --no-fd-passing โ€” disables file descriptor passing
  • --locks โ€” creates the number of shared locks you specify ๐Ÿ”’
  • --lock-engine โ€” sets the lock engine
  • --ftok โ€” sets the ipcsem key via ftok() so you avoid duplicates
  • --persistent-ipcsem โ€” does not remove ipcsem's on shutdown
  • -A, --sharedarea โ€” creates a raw shared memory area of the number of pages you specify (note: it supports keyval too)
  • --safe-fd โ€” don't close the file descriptor you specify, keep it safe ๐Ÿ›ก๏ธ
  • --fd-safe โ€” same thing, do not close the specified file descriptor
  • --cache โ€” creates a shared cache containing the given elements
  • --cache-blocksize โ€” sets the cache blocksize
  • --cache-store โ€” enables persistent cache to disk ๐Ÿ’พ
  • --cache-store-sync โ€” sets how often the persistent cache syncs
  • --cache-no-expire โ€” disables the auto sweep of expired items ๐Ÿงน
  • --cache-expire-freq โ€” sets how often the cache sweeper scans (default 3 seconds)
  • --cache-report-freed-items โ€” constantly reports cache items freed by the sweeper. btw, use only for debug ๐Ÿ™ˆ
  • --cache-udp-server โ€” binds the cache udp server (used only for set/update/delete) to the socket you specify
  • --cache-udp-node โ€” sends cache update/deletion over to the cache udp server you specify ๐Ÿ“ก
  • --cache-sync โ€” copies the entire content of another uWSGI cache server when this server starts up
  • --cache-use-last-modified โ€” updates the last_modified_at timestamp on every cache item modification (default is disabled)
  • --add-cache-item โ€” adds an item into the cache
  • --load-file-in-cache โ€” loads a static file into the cache ๐Ÿ“‚
  • --load-file-in-cache-gzip โ€” loads a static file into the cache, gzip-compressed
  • --cache2 โ€” creates a new generation shared cache (keyval syntax) โœจ
  • --queue โ€” enables the shared queue
  • --queue-blocksize โ€” sets the queue blocksize
  • --queue-store โ€” enables persistent queue to disk
  • --queue-store-sync โ€” sets how often the persistent queue syncs
  • -Q, --spooler โ€” runs a spooler on the directory you specify
  • --spooler-external โ€” maps spooler requests to a spooler directory that's managed by an external instance
  • --spooler-ordered โ€” tries to order the execution of spooler tasks ๐Ÿ”ข
  • --spooler-chdir โ€” chdir()s into the directory you specify before each spooler task
  • --spooler-processes โ€” sets the number of processes for spoolers
  • --spooler-quiet โ€” no being verbose about spooler tasks, shhh ๐Ÿคซ
  • --spooler-max-tasks โ€” the maximum number of tasks to run before recycling a spooler
  • --spooler-harakiri โ€” sets the harakiri timeout for spooler tasks
  • --spooler-frequency โ€” sets the spooler frequency
  • --spooler-freq โ€” sets the spooler frequency (short king version)
  • --mule โ€” adds a mule ๐Ÿด
  • --mules โ€” adds the number of mules you specify
  • --farm โ€” adds a mule farm ๐Ÿšœ (yes, really)
  • --mule-msg-size โ€” sets the mule message buffer size
  • --signal โ€” sends a uwsgi signal to a server
  • --signal-bufsize โ€” sets the buffer size for the signal queue
  • --signals-bufsize โ€” sets the buffer size for the signal queue (same, with an extra s)
  • --signal-timer โ€” adds a timer (syntax: <signal> <seconds>) โฒ๏ธ
  • --timer โ€” adds a timer (syntax: <signal> <seconds>)
  • --signal-rbtimer โ€” adds a redblack timer (syntax: <signal> <seconds>)
  • --rbtimer โ€” adds a redblack timer (syntax: <signal> <seconds>)
  • --rpc-max โ€” the maximum number of rpc slots (default: 64)
  • -L, --disable-logging โ€” disables request logging. quiet luxury ๐Ÿ’…
  • --flock โ€” locks the file you specify before starting, and exits if it's already locked
  • --flock-wait โ€” locks the file you specify before starting, and waits if it's already locked โณ
  • --flock2 โ€” locks the file you specify after logging/daemon setup, exiting if it's locked
  • --flock-wait2 โ€” locks the file you specify after logging/daemon setup, waiting if it's locked
  • --pidfile โ€” creates a pidfile (before privileges drop)
  • --pidfile2 โ€” creates a pidfile (after privileges drop)
  • --safe-pidfile โ€” creates a safe pidfile (before privileges drop) ๐Ÿ›ก๏ธ
  • --safe-pidfile2 โ€” creates a safe pidfile (after privileges drop)
  • --chroot โ€” chroot()s to the directory you specify
  • --pivot-root โ€” pivot_root()s to the directories you specify (new_root and put_old must be separated with a space)
  • --pivot_root โ€” pivot_root()s to the specified directories (new_root and put_old separated with a space) โ€” underscore edition
  • --uid โ€” setuids to the user/uid you specify
  • --gid โ€” setgids to the group/gid you specify
  • --add-gid โ€” adds the group id you specify to the process credentials
  • --immediate-uid โ€” setuids to the specified user/uid IMMEDIATELY ๐Ÿƒโ€โ™€๏ธ
  • --immediate-gid โ€” setgids to the specified group/gid IMMEDIATELY
  • --no-initgroups โ€” disables the additional groups that would be set via initgroups()
  • --cap โ€” sets the process capability
  • --unshare โ€” unshare()s part of the processes and puts them in a new namespace ๐ŸŒŒ
  • --unshare2 โ€” unshare()s part of the processes and puts them in a new namespace, after the rootfs change
  • --setns-socket โ€” exposes a unix socket that returns namespace fds from /proc/self/ns
  • --setns-socket-skip โ€” skips the entry you specify when sending setns file descriptors
  • --setns-skip โ€” skips the specified entry when sending setns file descriptors
  • --setns โ€” joins a namespace that was created by an external uWSGI instance
  • --setns-preopen โ€” opens /proc/self/ns as soon as possible and caches the fds โšก
  • --jailed โ€” flips the switch that says this instance is jailed, which forces the post_jail hooks to actually run ๐Ÿ’…
  • --refork โ€” does a fork() again after privileges get dropped. lowkey made for jailing setups ๐Ÿงš
  • --re-fork โ€” same exact energy as --refork: fork() again after privileges drop. jailing systems love this one ๐Ÿซถ
  • --refork-as-root โ€” fork() again before privileges drop. again, for the jailing girlies ๐ŸŽ€
  • --re-fork-as-root โ€” literally the same as --refork-as-root: fork() again before privileges drop. jailing systems, this is for y'all ๐Ÿ’–
  • --refork-post-jail โ€” fork() again after jailing. bestie it's giving jailing-system support and I'm obsessed โœจ
  • --re-fork-post-jail โ€” the twin of --refork-post-jail: fork() again after jailing. still for jailing systems ๐ŸŒธ
  • --hook-asap โ€” run the hook you gave it as soon as possible, no cap โšก
  • --hook-pre-jail โ€” run that hook before jailing ๐Ÿ”’
  • --hook-post-jail โ€” run that hook after jailing ๐Ÿ”“
  • --hook-in-jail โ€” run that hook inside the jail, after initialization ๐Ÿฆ‹
  • --hook-as-root โ€” run that hook before privileges drop ๐Ÿ‘‘
  • --hook-as-user โ€” run that hook after privileges drop ๐Ÿ™‹โ€โ™€๏ธ
  • --hook-as-user-atexit โ€” run that hook before the app exits and before reload ๐Ÿ’€
  • --hook-pre-app โ€” run that hook before app loading ๐Ÿ“ฆ
  • --hook-post-app โ€” run that hook after app loading โœ…
  • --hook-post-fork โ€” run that hook after every single fork ๐Ÿด
  • --hook-accepting โ€” run that hook after each worker enters the accepting phase ๐Ÿ‘ฏ
  • --hook-accepting1 โ€” run that hook after the first worker enters the accepting phase ๐Ÿฅ‡
  • --hook-accepting-once โ€” run that hook after each worker enters the accepting phase, but only once per-instance ๐Ÿ™ˆ
  • --hook-accepting1-once โ€” run that hook after the first worker enters the accepting phase, once per instance ๐Ÿ’ซ
  • --hook-master-start โ€” run that hook when the Master starts ๐Ÿ‘‘โœจ
  • --hook-touch โ€” run that hook when the file you name gets touched (syntax: <file> <action>) ๐Ÿซฐ
  • --hook-emperor-start โ€” run that hook when the Emperor starts ๐Ÿ‘ธ
  • --hook-emperor-stop โ€” run that hook when the Emperor sends a stop message โœ‹
  • --hook-emperor-reload โ€” run that hook when the Emperor sends a reload message ๐Ÿ”„
  • --hook-emperor-lost โ€” run that hook when the Emperor connection is lost ๐Ÿ˜ญ
  • --hook-as-vassal โ€” run that hook before exec()ing the vassal ๐Ÿƒ
  • --hook-as-emperor โ€” run that hook in the emperor, after the vassal has been started ๐Ÿ‘ธ๐Ÿซถ
  • --hook-as-mule โ€” run that hook in each mule ๐Ÿด
  • --hook-as-gateway โ€” run that hook in each gateway ๐Ÿšช
  • --after-request-hook โ€” run the function/symbol you name after every request ๐Ÿ’Œ
  • --after-request-call โ€” same thing, different flag: run the function/symbol you name after every request ๐Ÿ’Œ
  • --exec-asap โ€” run that command as soon as possible โšก
  • --exec-pre-jail โ€” run that command before jailing ๐Ÿ”’
  • --exec-post-jail โ€” run that command after jailing ๐Ÿ”“
  • --exec-in-jail โ€” run that command in jail after initialization ๐Ÿฆ‹
  • --exec-as-root โ€” run that command before privileges drop ๐Ÿ‘‘
  • --exec-as-user โ€” run that command after privileges drop ๐Ÿ™‹โ€โ™€๏ธ
  • --exec-as-user-atexit โ€” run that command before app exit and reload ๐Ÿ’€
  • --exec-pre-app โ€” run that command before app loading ๐Ÿ“ฆ
  • --exec-post-app โ€” run that command after app loading โœ…
  • --exec-as-vassal โ€” run that command before exec()ing the vassal ๐Ÿƒ
  • --exec-as-emperor โ€” run that command in the emperor, after the vassal has been started ๐Ÿ‘ธ
  • --mount-asap โ€” mount the filesystem as soon as possible ๐Ÿ—‚๏ธ
  • --mount-pre-jail โ€” mount the filesystem before jailing ๐Ÿ”’
  • --mount-post-jail โ€” mount the filesystem after jailing ๐Ÿ”“
  • --mount-in-jail โ€” mount the filesystem in jail after initialization ๐Ÿฆ‹
  • --mount-as-root โ€” mount the filesystem before privileges drop ๐Ÿ‘‘
  • --mount-as-vassal โ€” mount the filesystem before exec()ing the vassal ๐Ÿƒ
  • --mount-as-emperor โ€” mount the filesystem in the emperor, after the vassal has been started ๐Ÿ‘ธ
  • --umount-asap โ€” unmount the filesystem as soon as possible ๐Ÿ™…
  • --umount-pre-jail โ€” unmount the filesystem before jailing ๐Ÿ”’
  • --umount-post-jail โ€” unmount the filesystem after jailing ๐Ÿ”“
  • --umount-in-jail โ€” unmount the filesystem in jail after initialization ๐Ÿฆ‹
  • --umount-as-root โ€” unmount the filesystem before privileges drop ๐Ÿ‘‘
  • --umount-as-vassal โ€” unmount the filesystem before exec()ing the vassal ๐Ÿƒ
  • --umount-as-emperor โ€” unmount the filesystem in the emperor, after the vassal has been started ๐Ÿ‘ธ

okay now we're in the wait-for-things era and honestly? she's patient, she's gorgeous, she's organized ๐ŸŒˆ

  • --wait-for-interface โ€” wait for the network interface you name to come up before running root hooks ๐Ÿ›œ
  • --wait-for-interface-timeout โ€” set the timeout for wait-for-interface โฐ
  • --wait-interface โ€” wait for the specified network interface to come up before running root hooks ๐Ÿ›œ (yes, same deal, shorter name bestie)
  • --wait-interface-timeout โ€” set the timeout for wait-for-interface โฐ
  • --wait-for-iface โ€” wait for the specified network interface to come up before running root hooks ๐Ÿ›œ
  • --wait-for-iface-timeout โ€” set the timeout for wait-for-interface โฐ
  • --wait-iface โ€” wait for the specified network interface to come up before running root hooks ๐Ÿ›œ
  • --wait-iface-timeout โ€” set the timeout for wait-for-interface โฐ
  • --wait-for-fs โ€” wait for the filesystem item you name to appear before running root hooks ๐Ÿ—„๏ธ
  • --wait-for-file โ€” wait for the file you name to appear before running root hooks ๐Ÿ“„
  • --wait-for-dir โ€” wait for the directory you name to appear before running root hooks ๐Ÿ“
  • --wait-for-mountpoint โ€” wait for the mountpoint you name to appear before running root hooks ๐Ÿ—‚๏ธ
  • --wait-for-fs-timeout โ€” set the timeout for wait-for-fs/file/dir โฐ
  • --wait-for-socket โ€” wait for the socket you name to be ready before loading apps ๐Ÿ”Œ
  • --wait-for-socket-timeout โ€” set the timeout for wait-for-socket โฐ

and the call family, because sometimes you just need to call a function at a very specific moment in your life ๐Ÿ’…

  • --call-asap โ€” call the function you name as soon as possible โšก
  • --call-pre-jail โ€” call the specified function before jailing ๐Ÿ”’
  • --call-post-jail โ€” call the specified function after jailing ๐Ÿ”“
  • --call-in-jail โ€” call the specified function in jail after initialization ๐Ÿฆ‹
  • --call-as-root โ€” call the specified function before privileges drop ๐Ÿ‘‘
  • --call-as-user โ€” call the specified function after privileges drop ๐Ÿ™‹โ€โ™€๏ธ
  • --call-as-user-atexit โ€” call the specified function before app exit and reload ๐Ÿ’€
  • --call-pre-app โ€” call the specified function before app loading ๐Ÿ“ฆ
  • --call-post-app โ€” call the specified function after app loading โœ…
  • --call-as-vassal โ€” call the specified function() before exec()ing the vassal ๐Ÿƒ
  • --call-as-vassal1 โ€” call the specified function(char *) before exec()ing the vassal ๐Ÿƒ
  • --call-as-vassal3 โ€” call the specified function(char *, uid_t, gid_t) before exec()ing the vassal ๐Ÿƒ
  • --call-as-emperor โ€” call the specified function() in the emperor, after the vassal has been started ๐Ÿ‘ธ
  • --call-as-emperor1 โ€” call the specified function(char *) in the emperor, after the vassal has been started ๐Ÿ‘ธ
  • --call-as-emperor2 โ€” call the specified function(char *, pid_t) in the emperor, after the vassal has been started ๐Ÿ‘ธ
  • --call-as-emperor4 โ€” call the specified function(char *, pid_t, uid_t, gid_t) in the emperor, after the vassal has been started ๐Ÿ‘ธ

  • --ini โ€” load config from an ini file ๐Ÿ“
  • -y, --yaml โ€” load config from a yaml file ๐ŸŒฑ
  • -y, --yml โ€” load config from a yaml file ๐ŸŒฑ (same vibe, shorter spelling)
  • -j, --json โ€” load config from a json file ๐Ÿงพ
  • -j, --js โ€” load config from a json file ๐Ÿงพ (again, same thing)
  • --weight โ€” the weight of the instance, used by clustering/lb/subscriptions โš–๏ธ
  • --auto-weight โ€” set the weight of the instance automatically, used by clustering/lb/subscriptions ๐Ÿค–
  • --no-server โ€” force no-server mode ๐Ÿšซ
  • --command-mode โ€” force command mode โŒจ๏ธ
  • --no-defer-accept โ€” disable deferred-accept on sockets ๐Ÿšซ๐Ÿ”Œ
  • --tcp-nodelay โ€” enable TCP NODELAY on each request ๐Ÿš€
  • --so-keepalive โ€” enable TCP KEEPALIVEs ๐Ÿ’ž
  • --so-send-timeout โ€” set SO_SNDTIMEO โณ
  • --socket-send-timeout โ€” set SO_SNDTIMEO โณ
  • --so-write-timeout โ€” set SO_SNDTIMEO โณ
  • --socket-write-timeout โ€” set SO_SNDTIMEO โณ
  • --socket-sndbuf โ€” set SO_SNDBUF ๐Ÿ“ค
  • --socket-rcvbuf โ€” set SO_RCVBUF ๐Ÿ“ฅ
  • --shutdown-sockets โ€” force calling shutdown() in addition to close() when sockets are destroyed ๐Ÿ”Œ๐Ÿ’ฅ

  • --limit-as โ€” limit the processes' address space/vsz ๐Ÿ“
  • --limit-nproc โ€” limit how many processes can be spawned ๐Ÿงฎ
  • --reload-on-as โ€” reload if the address space goes higher than the megabytes you specify ๐Ÿ”
  • --reload-on-rss โ€” reload if rss memory goes higher than the megabytes you specify ๐Ÿ”
  • --evil-reload-on-as โ€” force the master to reload a worker if its address space goes higher than the megabytes you specify ๐Ÿ˜ˆ
  • --evil-reload-on-rss โ€” force the master to reload a worker if its rss memory goes higher than the megabytes you specify ๐Ÿ˜ˆ
  • --mem-collector-freq โ€” set the memory collector frequency when evil reloads are in place ๐Ÿงน
  • --reload-on-fd โ€” reload if the file descriptor you name is ready ๐Ÿ”
  • --brutal-reload-on-fd โ€” brutal reload if the specified file descriptor is ready ๐Ÿ’€
  • --ksm โ€” enable Linux KSM ๐Ÿง
  • --pcre-jit โ€” enable pcre jit (if it's available) ๐Ÿง 
  • --never-swap โ€” lock all memory pages, avoiding swapping ๐Ÿ”’
  • --touch-reload โ€” reload uWSGI if the file you name is modified/touched ๐Ÿซฐ
  • --touch-workers-reload โ€” trigger a reload of (only) workers if the file you name is modified/touched ๐Ÿ‘ท
  • --touch-mules-reload โ€” reload mules if the file you name is modified/touched ๐Ÿด
  • --touch-spoolers-reload โ€” reload spoolers if the file you name is modified/touched ๐ŸŒ€
  • --touch-chain-reload โ€” trigger a chain reload if the file you name is modified/touched โ›“๏ธ
  • --touch-logrotate โ€” trigger logrotation if the file you name is modified/touched ๐Ÿชต
  • --touch-logreopen โ€” trigger log reopen if the file you name is modified/touched ๐Ÿ“–
  • --touch-exec โ€” run the command when the file you name is modified/touched (syntax: file command) ๐Ÿซฐโšก
  • --touch-signal โ€” fire off a signal the moment the file you named gets modified or touched (syntax is file signal) โœจ
  • --fs-reload โ€” do a whole graceful reload when the filesystem object you picked gets modified
  • --fs-brutal-reload โ€” same vibe but brutal reload when that filesystem object changes ๐Ÿ’€
  • --fs-signal โ€” raise a uwsgi signal when the specified filesystem object gets modified (syntax: file signal)
  • --check-mountpoint, --mountpoint-check, --check-mount, --mount-check โ€” literally destroy the instance if a filesystem is no longer reachable. all four names do the same thing bestie. super useful for reliable Fuse management ๐Ÿซถ
  • --propagate-touch โ€” the over-engineering option for systems with flaky signal management. yes it's extra, no we're not judging ๐ŸŽ€
  • --limit-post โ€” cap the request body size
  • --no-orphans โ€” auto-kill workers if the master dies. heads up: can be dangerous for availability so don't just turn it on and forget it ๐Ÿ˜ญ
  • --prio โ€” set processes/threads priority
  • --cpu-affinity โ€” set cpu affinity
  • --post-buffering โ€” set the size in bytes after which stuff buffers to disk instead of memory
  • --post-buffering-bufsize โ€” set the read() buffer size in post buffering mode
  • --body-read-warning โ€” sets how much memory (in megabytes) a request body is allowed to allocate before it starts printing a warning at you ๐Ÿ™ˆ
  • --upload-progress โ€” enable creation of .json files in the directory you specify during a file upload
  • --no-default-app โ€” no falling back to the default app, we're exclusive here ๐Ÿ’…
  • --manage-script-name โ€” automatically rewrite SCRIPT_NAME and PATH_INFO
  • --ignore-script-name โ€” just ignore SCRIPT_NAME entirely
  • --catch-exceptions โ€” report the exception as http output. discouraged, use only for testing โ€” pls don't ship this fr fr
  • --reload-on-exception โ€” reload a worker when an exception gets raised
  • --reload-on-exception-type โ€” reload a worker when a specific exception type gets raised
  • --reload-on-exception-value โ€” reload a worker when a specific exception value gets raised
  • --reload-on-exception-repr โ€” reload a worker when a specific exception type+value is raised (language-specific โœจ)
  • --exception-handler โ€” add an exception handler

  • --enable-metrics โ€” turn on the metrics subsystem ๐Ÿ‘‘
  • --metric โ€” add a custom metric
  • --metric-threshold, --metric-alarm, --alarm-metric โ€” all three add a metric threshold/alarm. same thing, three names, slay ๐ŸŒธ
  • --metrics-dir โ€” export metrics as text files into the directory you name
  • --metrics-dir-restore โ€” restore the last value taken from the metrics dir
  • --metric-dir โ€” export metrics as text files to the specified directory (yes it's basically a twin)
  • --metric-dir-restore โ€” restore last value taken from the metrics dir
  • --metrics-no-cores โ€” disable generation of cores-related metrics
  • --udp โ€” run the udp server on the address you give it
  • --stats, --stats-server โ€” enable the stats server on the specified address
  • --stats-http โ€” prefix stats server json output with http headers
  • --stats-minified, --stats-min โ€” minify the statistics json output
  • --stats-push โ€” push the stats json to the destination you specify
  • --stats-pusher-default-freq, --stats-pushers-default-freq โ€” set the default frequency of stats pushers
  • --stats-no-cores โ€” disable generation of cores-related stats
  • --stats-no-metrics โ€” don't include metrics in the stats output
  • --multicast โ€” subscribe to the multicast group you specify
  • --multicast-ttl โ€” set multicast ttl
  • --multicast-loop โ€” set multicast loop (default is 1)
  • --master-fifo โ€” enable the master fifo
  • --notify-socket โ€” enable the notification socket
  • --subscription-notify-socket โ€” set the notification socket for subscriptions

  • --legion โ€” became a member of a legion ๐Ÿ”ฅ
  • --legion-mcast โ€” became a member of a legion (shortcut for multicast)
  • --legion-node โ€” add a node to a legion
  • --legion-freq โ€” set the frequency of legion packets
  • --legion-tolerance โ€” set the tolerance of the legion subsystem
  • --legion-death-on-lord-error โ€” declare itself as a dead node for the number of seconds you specify if one of the lord hooks fails ๐Ÿ’€
  • --legion-skew-tolerance โ€” set the clock skew tolerance of the legion subsystem (default is 60 seconds)
  • --legion-lord โ€” action to call on Lord election ๐Ÿ‘‘
  • --legion-unlord โ€” action to call on Lord dismiss
  • --legion-setup โ€” action to call on legion setup
  • --legion-death โ€” action to call on legion death (shutdown of the instance)
  • --legion-join โ€” action to call on legion join (first time quorum is reached ๐ŸŽ€)
  • --legion-node-joined โ€” action to call on a new node joining the legion
  • --legion-node-left โ€” action to call on a node leaving the legion
  • --legion-quorum โ€” set the quorum of a legion
  • --legion-scroll โ€” set the scroll of a legion
  • --legion-scroll-max-size โ€” set max size of the legion scroll buffer
  • --legion-scroll-list-max-size โ€” set max size of the legion scroll list buffer

  • --subscriptions-sign-check โ€” set the digest algorithm and certificate directory for the secured subscription system ๐Ÿ”
  • --subscriptions-sign-check-tolerance โ€” set the maximum tolerance (in seconds) of clock skew for the secured subscription system
  • --subscriptions-sign-skip-uid โ€” skip the signature check for the uid you specify when using unix sockets credentials
  • --subscriptions-credentials-check โ€” add a directory to search for subscriptions key credentials
  • --subscriptions-use-credentials โ€” enable management of SCM_CREDENTIALS in subscriptions UNIX sockets
  • --subscription-algo โ€” set the load balancing algorithm for the subscription system
  • --subscription-dotsplit โ€” try to fall back to the next part (dot based) in the subscription key
  • --subscribe-to, --st, --subscribe โ€” subscribe to the subscription server you specify โœจ
  • --subscribe2 โ€” subscribe to the specified subscription server using advanced keyval syntax
  • --subscribe-freq โ€” send the subscription announce at the interval you specify
  • --subscription-tolerance โ€” set tolerance for subscription servers
  • --unsubscribe-on-graceful-reload โ€” force the unsubscribe request even during a graceful reload
  • --start-unsubscribed โ€” configure subscriptions but don't actually send them (super useful with master fifo)
  • --subscribe-with-modifier1 โ€” force the specified modifier1 when subscribing

  • --snmp โ€” enable the embedded snmp server
  • --snmp-community โ€” set the snmp community string
  • --ssl-verbose โ€” be verbose about SSL errors
  • --ssl-verify-depth โ€” set the maximum certificate verification depth
  • --sni โ€” add an SNI-governed SSL context
  • --sni-dir โ€” check for cert/key/client_ca files in the directory you specify and create a sni/ssl context on demand ๐Ÿฆ‹
  • --sni-dir-ciphers โ€” set ssl ciphers for the sni-dir option
  • --ssl-enable3, --ssl-enable-sslv3 โ€” enable SSLv3. (insecure) bestie why ๐Ÿ˜ญ
  • --ssl-enable-tlsv1 โ€” enable TLSv1. (insecure) also why ๐Ÿ˜ญ
  • --ssl-option โ€” set a raw ssl option (numeric value)
  • --sni-regexp โ€” add an SNI-governed SSL context (the key is a regexp)
  • --ssl-tmp-dir โ€” store ssl-related temp files in the directory you specify
  • --check-interval โ€” set the interval (in seconds) of master checks
  • --forkbomb-delay โ€” sleep for the number of seconds you specify when a forkbomb is detected ๐Ÿ’€
  • --binary-path โ€” force the binary path
  • --privileged-binary-patch โ€” patch the uwsgi binary with a new command (before the privileges drop)
  • --unprivileged-binary-patch โ€” patch the uwsgi binary with a new command (after the privileges drop)
  • --privileged-binary-patch-arg โ€” patch the uwsgi binary with a new command and arguments (before privileges drop)
  • --unprivileged-binary-patch-arg โ€” patch the uwsgi binary with a new command and arguments (after privileges drop)
  • --async โ€” enable async mode with the number of cores you specify
  • --max-fd โ€” set the maximum number of file descriptors (requires root privileges ๐Ÿ‘‘)
  • --logto โ€” set the logfile/udp address
  • --logto2 โ€” log to the file or udp address you specify after the privileges drop
  • --log-format, --logformat โ€” set the advanced format for request logging
  • --logformat-strftime, --log-format-strftime โ€” apply strftime to the logformat output
  • --logfile-chown โ€” chown logfiles
  • --logfile-chmod โ€” chmod logfiles
  • --log-syslog โ€” log to syslog
  • --log-socket โ€” send logs to the socket you specify
  • --req-logger, --logger-req โ€” set/append a request logger
  • --logger โ€” set/append a logger
  • --logger-list, --loggers-list โ€” list enabled loggers
  • --threaded-logger โ€” offload log writing to a thread
  • --log-encoder โ€” add an item to the log encoder chain
  • --log-req-encoder โ€” add an item to the log req encoder chain
  • --log-drain โ€” drain (a.k.a. do not show) log lines matching the regexp you give it ๐Ÿ™ˆ
  • --log-filter โ€” show only the log lines matching the regexp you give it
  • --log-route โ€” log to the named logger you specify if the regexp applied on the logline matches
  • --log-req-route โ€” log requests to the named logger you specify if the regexp applied on the logline matches
  • --use-abort โ€” call abort() on segfault/fpe, could be useful for generating a core dump ๐Ÿ’€
  • --alarm โ€” create a new alarm. syntax: <alarm> <plugin:args>

okay bestie we're back in the option mines โ›๏ธโœจ grab your emotional support snack because this stretch is long, but it's also where all the good routing nonsense lives, so buckle up ๐Ÿ’…


  • --alarm-cheap โ€” use the main alarm thread for curl-based alarms instead of spawning dedicated threads for each one ๐Ÿงต less thread-chaos, more chill.
  • --alarm-freq โ€” tune how often the anti-loop alarm system fires (default 3 seconds) ๐Ÿ”
  • --alarm-fd โ€” raise the specified alarm when an fd is read. by default it reads 1 byte ๐Ÿ˜ญ so set it to 8 if you're working with eventfd.
  • --alarm-segfault โ€” raise the specified alarm when the segmentation fault handler runs ๐Ÿ’€
  • --segfault-alarm โ€” raise the specified alarm when the segmentation fault handler runs ๐Ÿ’€ (yes bestie, same energy, it's the twin).
  • --alarm-backlog โ€” raise the specified alarm when the socket backlog queue is full ๐Ÿ˜ค
  • --backlog-alarm โ€” raise the specified alarm when the socket backlog queue is full ๐Ÿ˜ค
  • --lq-alarm โ€” raise the specified alarm when the socket backlog queue is full ๐Ÿ˜ค
  • --alarm-lq โ€” raise the specified alarm when the socket backlog queue is full ๐Ÿ˜ค
  • --alarm-listen-queue โ€” raise the specified alarm when the socket backlog queue is full ๐Ÿ˜ค
  • --listen-queue-alarm โ€” raise the specified alarm when the socket backlog queue is full ๐Ÿ˜ค (six names, one job. slay ๐Ÿ’…)
  • --log-alarm โ€” raise the specified alarm when a log line matches the specified regexp. syntax: <alarm>[,alarm...] <regexp> ๐Ÿšจ
  • --alarm-log โ€” raise the specified alarm when a log line matches the specified regexp. syntax: <alarm>[,alarm...] <regexp> ๐Ÿšจ
  • --not-log-alarm โ€” skip the specified alarm when a log line matches the specified regexp. syntax: <alarm>[,alarm...] <regexp> ๐Ÿ™ˆ
  • --not-alarm-log โ€” skip the specified alarm when a log line matches the specified regexp. syntax: <alarm>[,alarm...] <regexp> ๐Ÿ™ˆ
  • --alarm-list โ€” list enabled alarms ๐Ÿ“‹
  • --alarms-list โ€” list enabled alarms ๐Ÿ“‹
  • --alarm-msg-size โ€” set the max size of an alarm message (default 8192) ๐Ÿ“จ

  • --log-master โ€” delegate logging to the master process ๐Ÿ‘‘ log duties: outsourced.
  • --log-master-bufsize โ€” set the buffer size for the master logger. bigger log messages will get truncated โœ‚๏ธ (rip to long lines).
  • --log-master-stream โ€” create the master logpipe as SOCK_STREAM ๐Ÿšฐ
  • --log-master-req-stream โ€” create the master requests logpipe as SOCK_STREAM ๐Ÿšฐ
  • --log-reopen โ€” reopen the log after a reload ๐Ÿ”„
  • --log-truncate โ€” truncate the log on startup ๐Ÿ—‘๏ธ fresh page energy.
  • --log-maxsize โ€” set maximum logfile size ๐Ÿ“
  • --log-backupname โ€” set the logfile name used after rotation ๐Ÿ—‚๏ธ
  • --logdate โ€” prefix logs with a date or a strftime string ๐Ÿ“…
  • --log-date โ€” prefix logs with a date or a strftime string ๐Ÿ“…
  • --log-prefix โ€” prefix logs with a string ๐Ÿท๏ธ
  • --log-zero โ€” log responses without a body ๐Ÿซฅ
  • --log-slow โ€” log requests slower than the specified number of milliseconds ๐Ÿข
  • --log-4xx โ€” log requests with a 4xx response ๐Ÿšซ
  • --log-5xx โ€” log requests with a 5xx response ๐Ÿ’ฅ
  • --log-big โ€” log requests bigger than the specified size ๐Ÿ‹
  • --log-sendfile โ€” log sendfile requests ๐Ÿ“ค
  • --log-ioerror โ€” log requests with io errors ๐Ÿฉน
  • --log-micros โ€” report response time in microseconds instead of milliseconds โฑ๏ธ (yes queen, be precise)
  • --log-x-forwarded-for โ€” use the ip from the X-Forwarded-For header instead of REMOTE_ADDR ๐ŸŒ

  • --master-as-root โ€” leave the master process running as root ๐Ÿ‘‘๐Ÿ”“
  • --drop-after-init โ€” run privileges drop after plugin initialization, superseded by drop-after-apps ๐Ÿ“‰
  • --drop-after-apps โ€” run privileges drop after apps loading, superseded by master-as-root ๐Ÿ“‰
  • --force-cwd โ€” force the initial working directory to the specified value ๐Ÿ“
  • --binsh โ€” override /bin/sh (used by exec hooks โ€” it always falls back to /bin/sh) ๐Ÿš
  • --chdir โ€” chdir to the specified directory before apps loading ๐Ÿšช
  • --chdir2 โ€” chdir to the specified directory after apps loading ๐Ÿšชโœจ

  • --lazy โ€” set lazy mode (load apps in workers instead of the master) ๐Ÿ˜ด
  • --lazy-apps โ€” load apps in each worker instead of the master ๐Ÿ˜ด
  • --cheap โ€” set cheap mode (spawn workers only after the first request) ๐Ÿช™
  • --cheaper โ€” set cheaper mode (adaptive process spawning) ๐Ÿ“ˆ
  • --cheaper-initial โ€” set the initial number of processes to spawn in cheaper mode ๐Ÿ”ข
  • --cheaper-algo โ€” choose the algorithm used for adaptive process spawning ๐Ÿง 
  • --cheaper-step โ€” number of additional processes to spawn at each overload ๐Ÿชœ
  • --cheaper-overload โ€” increase workers after the specified overload ๐Ÿ‹๏ธ
  • --cheaper-algo-list โ€” list enabled cheapers algorithms ๐Ÿ“œ
  • --cheaper-algos-list โ€” list enabled cheapers algorithms ๐Ÿ“œ
  • --cheaper-list โ€” list enabled cheapers algorithms ๐Ÿ“œ
  • --cheaper-rss-limit-soft โ€” don't spawn new workers if the total resident memory usage of all workers is higher than this limit ๐Ÿง ๐Ÿšง
  • --cheaper-rss-limit-hard โ€” if total workers resident memory usage is higher, try to stop workers ๐Ÿ›‘
  • --idle โ€” set idle mode (puts uWSGI in cheap mode after inactivity) ๐Ÿ’ค
  • --die-on-idle โ€” shutdown uWSGI when idle โšฐ๏ธ the ultimate nap.

  • --mount โ€” load an application under a mountpoint ๐Ÿ”๏ธ
  • --worker-mount โ€” load an application under a mountpoint in the specified worker, or after workers spawn ๐Ÿ”๏ธ๐Ÿง‘โ€๐Ÿญ
  • --threads โ€” run each worker in prethreaded mode with the specified number of threads ๐Ÿงต
  • --thread-stacksize โ€” set the threads stacksize ๐Ÿ“š
  • --threads-stacksize โ€” set the threads stacksize ๐Ÿ“š
  • --thread-stack-size โ€” set the threads stacksize ๐Ÿ“š
  • --threads-stack-size โ€” set the threads stacksize ๐Ÿ“š

  • --vhost โ€” enable virtualhosting mode (based on the SERVER_NAME variable) ๐Ÿ 
  • --vhost-host โ€” enable virtualhosting mode (based on the HTTP_HOST variable) ๐Ÿ 

ok here comes the routing section ๐ŸŒˆ (still OPTIONS, bestie, we're just vibing)

  • --route โ€” add a route ๐Ÿ›ฃ๏ธ
  • --route-host โ€” add a route based on the Host header ๐Ÿท๏ธ
  • --route-uri โ€” add a route based on REQUEST_URI ๐Ÿ”—
  • --route-qs โ€” add a route based on QUERY_STRING โ“
  • --route-remote-addr โ€” add a route based on REMOTE_ADDR ๐Ÿ“
  • --route-user-agent โ€” add a route based on HTTP_USER_AGENT ๐Ÿ•ต๏ธ
  • --route-remote-user โ€” add a route based on REMOTE_USER ๐Ÿ‘ค
  • --route-referer โ€” add a route based on HTTP_REFERER โ†ฉ๏ธ
  • --route-label โ€” add a routing label (for use with goto) ๐Ÿ”–
  • --route-if โ€” add a route based on a condition ๐Ÿงฉ
  • --route-if-not โ€” add a route based on a condition (negate version) ๐Ÿ™ƒ
  • --route-run โ€” always run the specified route action โ–ถ๏ธ
  • --final-route โ€” add a final route ๐Ÿ
  • --final-route-status โ€” add a final route for the specified status ๐Ÿ
  • --final-route-host โ€” add a final route based on the Host header ๐Ÿ
  • --final-route-uri โ€” add a final route based on REQUEST_URI ๐Ÿ
  • --final-route-qs โ€” add a final route based on QUERY_STRING ๐Ÿ
  • --final-route-remote-addr โ€” add a final route based on REMOTE_ADDR ๐Ÿ
  • --final-route-user-agent โ€” add a final route based on HTTP_USER_AGENT ๐Ÿ
  • --final-route-remote-user โ€” add a final route based on REMOTE_USER ๐Ÿ
  • --final-route-referer โ€” add a final route based on HTTP_REFERER ๐Ÿ
  • --final-route-label โ€” add a final routing label (for use with goto) ๐Ÿ๐Ÿ”–
  • --final-route-if โ€” add a final route based on a condition ๐Ÿ
  • --final-route-if-not โ€” add a final route based on a condition (negate version) ๐Ÿ๐Ÿ™ƒ
  • --final-route-run โ€” always run the specified final route action ๐Ÿโ–ถ๏ธ
  • --error-route โ€” add an error route ๐Ÿšจ
  • --error-route-status โ€” add an error route for the specified status ๐Ÿšจ
  • --error-route-host โ€” add an error route based on the Host header ๐Ÿšจ
  • --error-route-uri โ€” add an error route based on REQUEST_URI ๐Ÿšจ
  • --error-route-qs โ€” add an error route based on QUERY_STRING ๐Ÿšจ
  • --error-route-remote-addr โ€” add an error route based on REMOTE_ADDR ๐Ÿšจ
  • --error-route-user-agent โ€” add an error route based on HTTP_USER_AGENT ๐Ÿšจ
  • --error-route-remote-user โ€” add an error route based on REMOTE_USER ๐Ÿšจ
  • --error-route-referer โ€” add an error route based on HTTP_REFERER ๐Ÿšจ
  • --error-route-label โ€” add an error routing label (for use with goto) ๐Ÿšจ๐Ÿ”–
  • --error-route-if โ€” add an error route based on a condition ๐Ÿšจ
  • --error-route-if-not โ€” add an error route based on a condition (negate version) ๐Ÿšจ๐Ÿ™ƒ
  • --error-route-run โ€” always run the specified error route action ๐Ÿšจโ–ถ๏ธ
  • --response-route โ€” add a response route ๐Ÿ“ฌ
  • --response-route-status โ€” add a response route for the specified status ๐Ÿ“ฌ
  • --response-route-host โ€” add a response route based on the Host header ๐Ÿ“ฌ
  • --response-route-uri โ€” add a response route based on REQUEST_URI ๐Ÿ“ฌ
  • --response-route-qs โ€” add a response route based on QUERY_STRING ๐Ÿ“ฌ
  • --response-route-remote-addr โ€” add a response route based on REMOTE_ADDR ๐Ÿ“ฌ
  • --response-route-user-agent โ€” add a response route based on HTTP_USER_AGENT ๐Ÿ“ฌ
  • --response-route-remote-user โ€” add a response route based on REMOTE_USER ๐Ÿ“ฌ
  • --response-route-referer โ€” add a response route based on HTTP_REFERER ๐Ÿ“ฌ
  • --response-route-label โ€” add a response routing label (for use with goto) ๐Ÿ“ฌ๐Ÿ”–
  • --response-route-if โ€” add a response route based on a condition ๐Ÿ“ฌ
  • --response-route-if-not โ€” add a response route based on a condition (negate version) ๐Ÿ“ฌ๐Ÿ™ƒ
  • --response-route-run โ€” always run the specified response route action ๐Ÿ“ฌโ–ถ๏ธ
  • --router-list โ€” list enabled routers ๐Ÿ“‹
  • --routers-list โ€” list enabled routers ๐Ÿ“‹

  • --error-page-403 โ€” add an error page (html) for the managed 403 response ๐Ÿšซ
  • --error-page-404 โ€” add an error page (html) for the managed 404 response ๐Ÿ‘ป
  • --error-page-500 โ€” add an error page (html) for the managed 500 response ๐Ÿ’ฅ
  • --websockets-ping-freq โ€” set the frequency (in seconds) of websockets automatic ping packets ๐Ÿ“
  • --websocket-ping-freq โ€” set the frequency (in seconds) of websockets automatic ping packets ๐Ÿ“
  • --websockets-pong-tolerance โ€” set the tolerance (in seconds) of the websockets ping/pong subsystem ๐Ÿ“
  • --websocket-pong-tolerance โ€” set the tolerance (in seconds) of the websockets ping/pong subsystem ๐Ÿ“
  • --websockets-max-size โ€” set the max allowed size of websocket messages (in Kbytes, default 1024) ๐Ÿ“ฆ
  • --websocket-max-size โ€” set the max allowed size of websocket messages (in Kbytes, default 1024) ๐Ÿ“ฆ
  • --chunked-input-limit โ€” set the max size of a chunked input part (default 1MB, in bytes) ๐Ÿงฉ
  • --chunked-input-timeout โ€” set the default timeout for chunked input โณ
  • --clock โ€” set a clock source ๐Ÿ•ฐ๏ธ
  • --clock-list โ€” list enabled clocks ๐Ÿ“‹

ok that's this chunk done bestie, keep going, the options are still coming ๐Ÿ’–โœจ

  • --clocks-list โ€” lists all the clocks that are currently enabled, bestie โฐ
  • --add-header โ€” auto-drops HTTP headers into the response for you, no manual labour ๐Ÿ’…
  • --rem-header โ€” auto-removes the HTTP header you name from the response ๐Ÿซฅ
  • --del-header โ€” same gig, different name: nukes the specified HTTP header out of the response ๐Ÿ—‘๏ธ
  • --collect-header โ€” stashes the given response header into a request var (syntax: header var) ๐ŸŽ€
  • --response-header-collect โ€” literally the same thing: response header โ†’ request var (syntax: header var) ๐ŸŽ€
  • --pull-header โ€” grabs the specified response header, saves it into a request var, and yeets it out of the response (syntax: header var) ๐Ÿซณ
  • --check-static โ€” peeks for static files inside the directory you point at ๐Ÿ“‚
  • --check-static-docroot โ€” peeks for static files inside the requested DOCUMENT_ROOT ๐Ÿ 
  • --static-check โ€” yes bestie it's the check-static twin: looks for static files in the specified directory ๐Ÿ“‚
  • --static-map โ€” maps a mountpoint onto a static directory (or a single file) ๐Ÿ—บ๏ธ
  • --static-map2 โ€” like --static-map, except it fully appends the requested resource onto the docroot โœจ
  • --static-skip-ext โ€” skips the extension you name during staticfile checks ๐Ÿ™ˆ
  • --static-index โ€” if someone requests a directory, it goes hunting for the file you specified ๐Ÿ”
  • --static-safe โ€” skips the security checks when the file lives under the path you gave ๐Ÿ‘‘
  • --static-cache-paths โ€” shoves the resolved paths into the uWSGI cache for however many seconds you say ๐Ÿ—ƒ๏ธ
  • --static-cache-paths-name โ€” uses the cache you pick for those static paths ๐ŸŽฏ
  • --mimefile โ€” sets the mime types file path (default /etc/mime.types) ๐Ÿ“„
  • --mime-file โ€” identical twin energy: sets the mime types file path (default /etc/mime.types) ๐Ÿ“„
  • --static-expires-type โ€” sets the Expires header based on the content type ๐Ÿ“…
  • --static-expires-type-mtime โ€” sets the Expires header based on the content type and the file mtime โฑ๏ธ
  • --static-expires โ€” sets the Expires header based on a filename regexp ๐Ÿ”ค
  • --static-expires-mtime โ€” sets the Expires header based on a filename regexp and the file mtime โฑ๏ธ
  • --static-expires-uri โ€” sets the Expires header based on a REQUEST_URI regexp ๐Ÿ”ค
  • --static-expires-uri-mtime โ€” sets the Expires header based on a REQUEST_URI regexp and the file mtime โฑ๏ธ
  • --static-expires-path-info โ€” sets the Expires header based on a PATH_INFO regexp ๐Ÿ”ค
  • --static-expires-path-info-mtime โ€” sets the Expires header based on a PATH_INFO regexp and the file mtime โฑ๏ธ
  • --static-gzip โ€” if the regexp you handed over matches the static file translation, it'll go looking for a gzip version ๐Ÿ—œ๏ธ
  • --static-gzip-all โ€” checks for a gzip version of every requested static file ๐Ÿ—œ๏ธ
  • --static-gzip-dir โ€” checks for a gzip version of all requested static files inside the dir/prefix you name ๐Ÿ“
  • --static-gzip-prefix โ€” same deal, still hunting gzip versions of all requested static files in the specified dir/prefix ๐Ÿ“
  • --static-gzip-ext โ€” hunts for a gzip version of all requested static files carrying the ext/suffix you specified ๐Ÿท๏ธ
  • --static-gzip-suffix โ€” yeah it's the ext/suffix one again: gzip versions of all requested static files with that ext/suffix ๐Ÿท๏ธ
  • --honour-range โ€” switches on support for the HTTP Range header ๐Ÿ“
  • --offload-threads โ€” sets how many offload threads to spawn (per-worker, default 0) ๐Ÿงต
  • --offload-thread โ€” the singular-named twin, same job: number of offload threads to spawn (per-worker, default 0) ๐Ÿงต
  • --file-serve-mode โ€” sets the static file serving mode ๐Ÿšš
  • --fileserve-mode โ€” sets the static file serving mode (yes, no dash, same vibe) ๐Ÿšš
  • --disable-sendfile โ€” kills sendfile() and makes everything run on plain boring read()/write() ๐Ÿ˜ด
  • --check-cache โ€” looks for response data in the cache you name (leave it empty for the default cache) ๐Ÿ”Ž
  • --close-on-exec โ€” sets close-on-exec on connection sockets (could be required for spawning processes in requests) ๐Ÿšช
  • --close-on-exec2 โ€” sets close-on-exec on server sockets (could be required for spawning processes in requests) ๐Ÿšช
  • --mode โ€” set uWSGI custom mode ๐ŸŽ›๏ธ
  • --env โ€” set an environment variable ๐ŸŒ
  • --envdir โ€” loads a daemontools compatible envdir ๐Ÿ“‚
  • --early-envdir โ€” loads a daemontools compatible envdir ASAP, no waiting around โšก
  • --unenv โ€” unset an environment variable ๐Ÿงน
  • --vacuum โ€” tries to remove every generated file and socket on the way out ๐Ÿงฝ
  • --file-write โ€” writes the content you give to the file you give (syntax: file=value), and it happens before privileges drop โš ๏ธ
  • --cgroup โ€” drops the processes into the cgroup you specify ๐Ÿช†
  • --cgroup-opt โ€” sets a value in the specified cgroup option ๐Ÿ”ง
  • --cgroup-dir-mode โ€” sets the permission for the cgroup directory (default is 700) ๐Ÿ”
  • --namespace โ€” runs inside a brand-new namespace under the rootfs you specify ๐ŸŒŒ
  • --namespace-keep-mount โ€” keeps the mountpoint you name alive inside your namespace ๐Ÿงท
  • --ns โ€” runs in a new namespace under the specified rootfs (short and sweet version) ๐ŸŒŒ
  • --namespace-net โ€” adds a network namespace ๐Ÿ•ธ๏ธ
  • --ns-net โ€” adds a network namespace, tiny-name edition ๐Ÿ•ธ๏ธ
  • --enable-proxy-protocol โ€” enables PROXY1 protocol support (only for http parsers) ๐Ÿงพ
  • --reuse-port โ€” enables the REUSE_PORT flag on the socket (BSD only) ๐Ÿก
  • --tcp-fast-open โ€” enables the TCP_FASTOPEN flag on TCP sockets with the qlen value you give โšก
  • --tcp-fastopen โ€” same flag, no dash: TCP_FASTOPEN on TCP sockets with your qlen value โšก
  • --tcp-fast-open-client โ€” uses sendto(..., MSG_FASTOPEN, ...) instead of connect() when it's supported ๐Ÿš€
  • --tcp-fastopen-client โ€” identical, still sendto(..., MSG_FASTOPEN, ...) instead of connect() if supported ๐Ÿš€
  • --zerg โ€” attaches to a zerg server ๐Ÿ›
  • --zerg-fallback โ€” falls back to normal sockets if the zerg server isn't available ๐Ÿช‚
  • --zerg-server โ€” enables the zerg server on the UNIX socket you name ๐Ÿ›
  • --cron โ€” adds a cron task โฐ
  • --cron2 โ€” adds a cron task using key=val syntax โฐ
  • --unique-cron โ€” adds a unique cron task, one of a kind ๐Ÿ’Ž
  • --cron-harakiri โ€” sets the maximum time (in seconds) we wait for a cron command to complete โณ
  • --legion-cron โ€” adds a cron task that only runs when the instance is a lord of the legion you specified ๐Ÿ‘‘
  • --cron-legion โ€” also adds a cron task runnable only when the instance is a lord of the specified legion ๐Ÿ‘‘
  • --unique-legion-cron โ€” adds a unique cron task that only runs when the instance is a lord of the specified legion ๐Ÿ’Ž๐Ÿ‘‘
  • --unique-cron-legion โ€” same thing, name flipped: unique cron task, runnable only when the instance is a lord of the specified legion ๐Ÿ’Ž๐Ÿ‘‘
  • --loop โ€” selects the uWSGI loop engine ๐Ÿ”
  • --loop-list โ€” lists enabled loop engines ๐Ÿ“‹
  • --loops-list โ€” lists enabled loop engines (plural, same list, we love options) ๐Ÿ“‹
  • --worker-exec โ€” runs the command you give as a worker ๐Ÿ› ๏ธ
  • --worker-exec2 โ€” runs the specified command as a worker, but after the post_fork hook ๐Ÿช
  • --attach-daemon โ€” attaches a command/daemon to the master process (the command has to not go in background) ๐Ÿ”—
  • --attach-control-daemon โ€” attaches a command/daemon to the master process (the command has to not go in background) โ€” and when that daemon dies, the master dies too ๐Ÿ’€
  • --smart-attach-daemon โ€” attaches a command/daemon to the master process, managed by a pidfile (the command has to daemonize) ๐Ÿง 
  • --smart-attach-daemon2 โ€” attaches a command/daemon to the master process managed by a pidfile (the command has to NOT daemonize) ๐Ÿง โ—
  • --legion-attach-daemon โ€” same as --attach-daemon, except the daemon only runs on the legion lord node ๐Ÿ‘‘
  • --legion-smart-attach-daemon โ€” same as --smart-attach-daemon, except the daemon only runs on the legion lord node ๐Ÿ‘‘
  • --legion-smart-attach-daemon2 โ€” same as --smart-attach-daemon2, except the daemon only runs on the legion lord node ๐Ÿ‘‘
  • --daemons-honour-stdin โ€” does not swap the stdin of external daemons over to /dev/null ๐Ÿ™…
  • --attach-daemon2 โ€” the attach-daemon keyval variant (supports smart modes too) ๐Ÿ—๏ธ
  • --plugins โ€” loads uWSGI plugins ๐Ÿงฉ
  • --plugin โ€” loads uWSGI plugins, one-letter-shorter edition ๐Ÿงฉ
  • --need-plugins โ€” loads uWSGI plugins, and actually exits on error ๐Ÿšจ
  • --need-plugin โ€” loads uWSGI plugins and exits on error, singular name ๐Ÿšจ
  • --plugins-dir โ€” adds a directory to the uWSGI plugin search path ๐Ÿ”Ž
  • --plugin-dir โ€” adds a directory to the uWSGI plugin search path, same path, shorter name ๐Ÿ”Ž
  • --plugins-list โ€” lists enabled plugins ๐Ÿ“‹
  • --plugin-list โ€” lists enabled plugins (you already know it's the twin) ๐Ÿ“‹
  • --autoload โ€” tries to automatically load plugins whenever unknown options show up ๐Ÿค–
  • --dlopen โ€” blindly loads a shared library ๐Ÿ™ˆ
  • --allowed-modifiers โ€” a comma separated list of the allowed modifiers โœ…
  • --remap-modifier โ€” remaps a request modifier from one id to another ๐Ÿ”€
  • --dump-options โ€” dumps the full list of every available option ๐Ÿ—’๏ธ
  • --show-config โ€” shows the current config, reformatted as ini ๐Ÿ“œ
  • --binary-append-data โ€” returns the content of a resource to stdout so you can append it to a uwsgi binary (for data:// usage) โž•
  • --print โ€” simple print ๐Ÿ–จ๏ธ
  • --iprint โ€” simple print, immediate version โšก๐Ÿ–จ๏ธ
  • --exit โ€” force exit() on the instance ๐Ÿšช๐Ÿ’จ
  • --cflags โ€” reports uWSGI CFLAGS (useful for building external plugins) ๐Ÿ—๏ธ
  • --dot-h โ€” dumps the uwsgi.h used for building the core (useful for building external plugins) ๐Ÿ—๏ธ
  • --config-py โ€” dumps the uwsgiconfig.py used for building the core (useful for building external plugins) ๐Ÿ—๏ธ
  • --build-plugin โ€” builds a uWSGI plugin for the current binary ๐Ÿ”จ
  • --version โ€” prints the uWSGI version ๐Ÿท๏ธ
  • --response-headers-limit โ€” sets the response header maximum size (default: 64k) ๐Ÿ“ฆ

and that's the whole options buffet, bestie, we ate and left no crumbs ๐Ÿ‘‘โœจ

this one's from uwsgi_xslt, version 2.0.31-debian, dated July 2026 โ€” aka UWSGI_XSLT(1), and yes she's iconic, keep her close ๐Ÿ’–๐Ÿฆ‹๐Ÿ’…

๐Ÿ“ฆ where this page comes from