UWSGI_ALARM_XMPP(1)

๐ŸŒธ NAME ๐ŸŒธ

uwsgi_alarm_xmpp โ€” the fast (pure C), self-healing, developer-friendly WSGI server. This is the manual page for it, bestie, and yeah there's a LOT ๐Ÿซถ


โœจ SYNOPSIS โœจ

uwsgi-core [options...]

๐Ÿ’… DESCRIPTION ๐Ÿ’…

Okay so, buckle up, because this is literally a menu of every socket, worker, config and emperor knob this server has. Every single flag is listed right here, fr fr โ€” nothing skipped, no crumbs. Let's get into it. ๐Ÿ‘‘

๐ŸŒˆ Sockets & Protocols

  • -s, --socket โ€” bind to the specified UNIX/TCP socket using the default protocol
  • -s, --uwsgi-socket โ€” bind to the specified UNIX/TCP socket using the uwsgi protocol
  • --suwsgi-socket โ€” bind to the specified UNIX/TCP socket using the uwsgi protocol over SSL
  • --ssl-socket โ€” bind to the specified UNIX/TCP socket using the uwsgi protocol over SSL
  • --http-socket โ€” bind to the specified UNIX/TCP socket using the HTTP protocol
  • --http-socket-modifier1 โ€” force the specified modifier1 when using the HTTP protocol
  • --http-socket-modifier2 โ€” force the specified modifier2 when using the HTTP protocol
  • --http11-socket โ€” bind to the specified UNIX/TCP socket using the HTTP 1.1 (Keep-Alive) protocol
  • --https-socket โ€” bind to the specified UNIX/TCP socket using the HTTPS protocol
  • --https-socket-modifier1 โ€” force the specified modifier1 when using the HTTPS protocol
  • --https-socket-modifier2 โ€” force the specified modifier2 when using the HTTPS protocol
  • --fastcgi-socket โ€” bind to the specified UNIX/TCP socket using the FastCGI protocol
  • --fastcgi-nph-socket โ€” bind to the specified UNIX/TCP socket using the FastCGI protocol (nph mode)
  • --fastcgi-modifier1 โ€” force the specified modifier1 when using the FastCGI protocol
  • --fastcgi-modifier2 โ€” force the specified modifier2 when using the FastCGI protocol
  • --scgi-socket โ€” bind to the specified UNIX/TCP socket using the SCGI protocol
  • --scgi-nph-socket โ€” bind to the specified UNIX/TCP socket using the SCGI protocol (nph mode)
  • --scgi-modifier1 โ€” force the specified modifier1 when using the SCGI protocol
  • --scgi-modifier2 โ€” force the specified modifier2 when using the SCGI protocol
  • --raw-socket โ€” bind to the specified UNIX/TCP socket using the RAW protocol
  • --raw-modifier1 โ€” force the specified modifier1 when using the RAW protocol
  • --raw-modifier2 โ€” force the specified modifier2 when using the RAW protocol
  • --puwsgi-socket โ€” bind to the specified UNIX/TCP socket using the persistent uwsgi protocol (puwsgi)
  • --protocol โ€” force the specified protocol for default sockets
  • --socket-protocol โ€” force the specified protocol for default sockets
  • --shared-socket โ€” create a shared socket for advanced jailing or ipc
  • --undeferred-shared-socket โ€” create a shared socket for advanced jailing or ipc (undeferred mode)

๐Ÿงš Workers & Harakiri

  • -p, --processes โ€” spawn the specified number of workers/processes
  • -p, --workers โ€” spawn the specified number of workers/processes
  • --thunder-lock โ€” serialize accept() usage (if possible)
  • -t, --harakiri โ€” set the harakiri timeout
  • --harakiri-verbose โ€” enable verbose mode for harakiri
  • --harakiri-graceful-timeout โ€” the interval between a graceful harakiri attempt and a sigkill
  • --harakiri-graceful-signal โ€” use this signal instead of sigterm for graceful harakiri attempts
  • --harakiri-queue-threshold โ€” only trigger harakiri if the queue is greater than this threshold
  • --harakiri-no-arh โ€” do not enable harakiri during after-request-hook
  • --no-harakiri-arh โ€” do not enable harakiri during after-request-hook
  • --no-harakiri-after-req-hook โ€” do not enable harakiri during after-request-hook
  • --backtrace-depth โ€” set the backtrace depth
  • --mule-harakiri โ€” set the harakiri timeout for mule tasks

๐ŸŽ€ Config Loading & Placeholders

  • -x, --xmlconfig โ€” load config from an xml file
  • -x, --xml โ€” load config from an xml file
  • --config โ€” load configuration using the pluggable system
  • --fallback-config โ€” re-exec uwsgi with the specified config when the exit code is 1
  • --strict โ€” enable strict mode (placeholder cannot be used) โš ๏ธ
  • --skip-zero โ€” skip the check of file descriptor 0
  • --skip-atexit โ€” skip atexit hooks (ignored by the master)
  • --skip-atexit-teardown โ€” skip atexit teardown (ignored by the master)
  • -S, --set โ€” set a placeholder or an option
  • --set-placeholder โ€” set a placeholder
  • --set-ph โ€” set a placeholder
  • --get โ€” print the specified option value and exit
  • --declare-option โ€” declare a new uWSGI custom option
  • --declare-option2 โ€” declare a new uWSGI custom option (non-immediate)
  • --resolve โ€” place the result of a dns query in the specified placeholder, sytax: placeholder=name (immediate option)

๐Ÿ’œ Option Logic (the if/for girlies)

  • --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 / Whitelist Context

  • --blacklist โ€” set options blacklist context
  • --end-blacklist โ€” clear options blacklist context
  • --whitelist โ€” set options whitelist context
  • --end-whitelist โ€” clear options whitelist context

๐Ÿ’€ Write Errors & Signal Vibes

  • --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()

๐ŸŒŸ Templating & Includes

  • --inherit โ€” use the specified file as 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)

๐Ÿ“ Daemon Lifecycle

  • -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

๐Ÿ”ฅ Sizing, Buffers & Memory

  • -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

๐Ÿ‘‘ Socket Modes & Permissions

  • -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

๐Ÿงต Threads & Process Names

  • -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

โญ App Loading & Master

  • -i, --single-interpreter โ€” do not use multiple interpreters (where available)
  • --need-app โ€” exit if no app can be loaded
  • -M, --master โ€” enable master process
  • --honour-stdin โ€” do not remap stdin to /dev/null

๐ŸŒˆ The Emperor Era

  • --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 โ€” writes the Emperor's pid into the file you point it at ๐Ÿ“
  • --emperor-tyrant โ€” puts the Emperor into Tyrant mode ๐Ÿ‘‘
  • --emperor-tyrant-nofollow โ€” while it's checking uid/gid in Tyrant mode, it will not follow symlinks ๐Ÿšซ๐Ÿ”—
  • --emperor-stats โ€” runs the Emperor stats server ๐Ÿ“Š
  • --emperor-stats-server โ€” also runs the Emperor stats server (same thing, other name) ๐Ÿ“Š
  • --early-emperor โ€” spawns the emperor as soon as possible โšก
  • --emperor-broodlord โ€” runs the emperor in BroodLord mode ๐Ÿฒ
  • --emperor-throttle โ€” sets the throttling level, in milliseconds, for vassals that are acting out (default 1000) ๐Ÿ˜ค
  • --emperor-max-throttle โ€” sets the max throttling level, in milliseconds, for those badly-behaving vassals (default 3 minutes) ๐Ÿ›‘
  • --emperor-magic-exec โ€” prefixes vassals' config files with exec:// when they have the executable bit โœจ
  • --emperor-on-demand-extension โ€” searches for a text file named vassal name + extension, and that file holds the on demand socket name ๐Ÿ”
  • --emperor-on-demand-ext โ€” same search, short-name twin of the one above ๐Ÿ”
  • --emperor-on-demand-directory โ€” enables on demand mode, binding to the unix socket inside the directory you specify, named like the vassal + .socket ๐Ÿ“‚
  • --emperor-on-demand-dir โ€” the short-name version of that same on-demand-directory behaviour ๐Ÿ“‚
  • --emperor-on-demand-exec โ€” uses the output of the command you specify as the on demand socket name, and the vassal name is passed as the one and only argument ๐ŸŽฏ
  • --emperor-extra-extension โ€” allows the extension you specify in the Emperor; the vassal gets called with --config ๐Ÿ“Ž
  • --emperor-extra-ext โ€” short-name twin of the extra-extension thing ๐Ÿ“Ž
  • --emperor-no-blacklist โ€” disables the Emperor blacklisting subsystem ๐Ÿšซ
  • --emperor-use-clone โ€” uses clone() instead of fork(), passing the unshare() flags you specify ๐Ÿงฌ
  • --emperor-graceful-shutdown โ€” uses vassals graceful shutdown during ragnarok ๐ŸŒ…
  • --emperor-cap โ€” sets vassals capability ๐ŸŽฉ
  • --vassals-cap โ€” sets vassals capability ๐ŸŽฉ
  • --vassal-cap โ€” sets vassals capability ๐ŸŽฉ
  • --imperial-monitor-list โ€” lists the enabled imperial monitors ๐Ÿ“‹
  • --imperial-monitors-list โ€” lists the enabled imperial monitors ๐Ÿ“‹
  • --vassals-inherit โ€” adds config templates to vassals config (uses --inherit) ๐Ÿ“ฅ
  • --vassals-include โ€” includes config templates into vassals config (uses --include instead of --inherit) ๐Ÿ“ฅ
  • --vassals-inherit-before โ€” adds config templates to vassals config (uses --inherit, and parses before the vassal file) โฎ๏ธ
  • --vassals-include-before โ€” includes config templates into vassals config (uses --include instead of --inherit, and parses before the vassal file) โฎ๏ธ
  • --vassals-start-hook โ€” runs the command you specify before each vassal starts ๐Ÿš€
  • --vassals-stop-hook โ€” runs the command you specify after a vassal's death โšฐ๏ธ
  • --vassal-sos โ€” asks the emperor for reinforcements when it's overloaded ๐Ÿ†˜
  • --vassal-sos-backlog โ€” asks the emperor for sos when the backlog queue has more items in it than the value you specify ๐Ÿ†˜
  • --vassals-set โ€” automatically sets the option you name (via --set) for every single vassal ๐ŸŽ
  • --vassal-set โ€” automatic set-for-every-vassal, short-name edition ๐ŸŽ
  • --heartbeat โ€” announces healthiness to the emperor ๐Ÿ’—
  • --reload-mercy โ€” sets the maximum time, in seconds, that we wait for workers and other processes to die during reload/shutdown โณ
  • --worker-reload-mercy โ€” sets the maximum time, in seconds, that a worker can take to reload/shutdown (default is 60) โณ
  • --mule-reload-mercy โ€” sets the maximum time, in seconds, that a mule can take to reload/shutdown (default is 60) โณ
  • --exit-on-reload โ€” forces exit even when a reload has been requested ๐Ÿšช
  • --die-on-term โ€” exits instead of doing a brutal reload on SIGTERM ๐Ÿ’€
  • --force-gateway โ€” forces the spawn of the first registered gateway with no master in play ๐Ÿšช
  • -h, --help โ€” shows this help ๐Ÿ™‹
  • -h, --usage โ€” shows this help ๐Ÿ™‹
  • --print-sym โ€” prints the content of the binary symbol you specify ๐Ÿ”Ž
  • --print-symbol โ€” prints the content of the binary symbol you specify ๐Ÿ”Ž
  • -r, --reaper โ€” calls waitpid(-1,...) after each request to get rid of zombies ๐ŸงŸ
  • -R, --max-requests โ€” reloads workers after the amount of managed requests you specify ๐Ÿ”
  • --max-requests-delta โ€” adds (worker_id * delta) to the max_requests value of each worker โž•
  • --min-worker-lifetime โ€” number of seconds a worker must run before it can be reloaded (default is 10) โฑ๏ธ
  • --max-worker-lifetime โ€” reloads workers after the amount 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 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 dodge 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 โ€” does not close the file descriptor you specify ๐Ÿ›ก๏ธ
  • --fd-safe โ€” does not close the file descriptor you specify ๐Ÿ›ก๏ธ
  • --cache โ€” creates a shared cache containing the elements you give it ๐Ÿ—„๏ธ
  • --cache-blocksize โ€” sets cache blocksize ๐Ÿ“ฆ
  • --cache-store โ€” enables persistent cache to disk ๐Ÿ’พ
  • --cache-store-sync โ€” sets the frequency of sync for the persistent cache ๐Ÿ”„
  • --cache-no-expire โ€” disables the auto sweep of expired items ๐Ÿงน
  • --cache-expire-freq โ€” sets the frequency of cache sweeper scans (default 3 seconds) ๐Ÿงน
  • --cache-report-freed-items โ€” constantly reports the cache item freed by the sweeper (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 to the cache udp server you specify ๐Ÿ“ก
  • --cache-sync โ€” copies the whole content of another uWSGI cache server on server startup ๐Ÿ“‹
  • --cache-use-last-modified โ€” updates the last_modified_at timestamp on every cache item modification (default is disabled) ๐Ÿ•’
  • --add-cache-item โ€” adds an item in the cache โž•
  • --load-file-in-cache โ€” loads a static file in the cache ๐Ÿ“„
  • --load-file-in-cache-gzip โ€” loads a static file in the cache with gzip compression ๐Ÿ—œ๏ธ
  • --cache2 โ€” creates a new generation shared cache (keyval syntax) ๐Ÿ†•
  • --queue โ€” enables shared queue ๐Ÿšถ
  • --queue-blocksize โ€” sets queue blocksize ๐Ÿ“ฆ
  • --queue-store โ€” enables persistent queue to disk ๐Ÿ’พ
  • --queue-store-sync โ€” sets the frequency of sync for the persistent queue ๐Ÿ”„
  • -Q, --spooler โ€” runs a spooler on the directory you specify ๐ŸŒ€
  • --spooler-external โ€” maps spoolers requests to a spooler directory managed by an external instance ๐Ÿ”—
  • --spooler-ordered โ€” tries to order the execution of spooler tasks ๐Ÿ”ข
  • --spooler-chdir โ€” chdir()s to the directory you specify before each spooler task ๐Ÿ“
  • --spooler-processes โ€” sets the number of processes for spoolers ๐Ÿงต
  • --spooler-quiet โ€” does not get verbose with spooler tasks ๐Ÿคซ
  • --spooler-max-tasks โ€” sets the maximum number of tasks to run before recycling a spooler โ™ป๏ธ
  • --spooler-harakiri โ€” sets harakiri timeout for spooler tasks ๐Ÿ—ก๏ธ
  • --spooler-frequency โ€” sets spooler frequency ๐ŸŽš๏ธ
  • --spooler-freq โ€” sets spooler frequency ๐ŸŽš๏ธ
  • --mule โ€” adds a mule ๐Ÿด
  • --mules โ€” adds the number of mules you specify ๐Ÿด
  • --farm โ€” adds a mule farm ๐Ÿšœ
  • --mule-msg-size โ€” sets 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 ๐Ÿ“ถ
  • --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 โ€” maximum number of rpc slots (default: 64) ๐ŸŽฐ
  • -L, --disable-logging โ€” disables request logging ๐Ÿ”‡
  • --flock โ€” locks the file you specify before starting, and exits if it's locked ๐Ÿ”
  • --flock-wait โ€” locks the file you specify before starting, and waits if it's locked โธ๏ธ
  • --flock2 โ€” locks the file you specify after logging/daemon setup, and exits if it's locked ๐Ÿ”
  • --flock-wait2 โ€” locks the file you specify after logging/daemon setup, and waits 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 directories you specify (new_root and put_old must be separated with a space) ๐ŸŒ€
  • --uid โ€” setuid to the user/uid you specify ๐Ÿ‘ค
  • --gid โ€” setgid to the group/gid you specify ๐Ÿ‘ฅ
  • --add-gid โ€” adds the group id you specify to the process credentials โž•
  • --immediate-uid โ€” setuid to the user/uid you specify, IMMEDIATELY โšก
  • --immediate-gid โ€” setgid to the group/gid you specify, IMMEDIATELY โšก
  • --no-initgroups โ€” disables the additional groups set via initgroups() ๐Ÿšซ
  • --cap โ€” sets process capability ๐ŸŽฉ
  • --unshare โ€” unshare()s part of the processes and puts it in a new namespace ๐Ÿงฌ
  • --unshare2 โ€” unshare()s part of the processes and puts it in a new namespace after the rootfs change ๐Ÿงฌ
  • --setns-socket โ€” exposes a unix socket returning namespace fds from /proc/self/ns ๐Ÿ”Œ
  • --setns-socket-skip โ€” skips the entry you specify when sending setns file descriptors โญ๏ธ
  • --setns-skip โ€” skips the entry you specify when sending setns file descriptors โญ๏ธ
  • --setns โ€” joins a namespace created by an external uWSGI instance ๐Ÿ”—
  • --setns-preopen โ€” opens /proc/self/ns as soon as possible and caches the fds ๐Ÿ—‚๏ธ
  • --jailed โ€” flags this instance as jailed, which forces the post_jail hooks to actually run. no skipping bestie ๐Ÿ’…
  • --refork โ€” does another fork() after privileges drop. perfect for jailing setups ๐Ÿฐ
  • --re-fork โ€” same thing, another fork() after privileges drop. jailing setups stay winning โœจ
  • --refork-as-root โ€” does another fork() before privileges drop. jailing setups, you know the vibe ๐ŸŽ€
  • --re-fork-as-root โ€” yep, another fork() before privileges drop. jailing setups again, iconic ๐ŸŒธ
  • --refork-post-jail โ€” another fork() after jailing. jailing setups, slay ๐Ÿฆ‹
  • --re-fork-post-jail โ€” another fork() after jailing. same energy, jailing setups ๐Ÿ’–
  • --hook-asap โ€” run that specified hook as soon as possible. like, immediately. no cap โšก
  • --hook-pre-jail โ€” run the specified hook before jailing ๐Ÿ”’
  • --hook-post-jail โ€” run the specified hook after jailing ๐Ÿ”“
  • --hook-in-jail โ€” run the specified hook in jail after initialization ๐Ÿš”
  • --hook-as-root โ€” run the specified hook before privileges drop ๐Ÿ‘‘
  • --hook-as-user โ€” run the specified hook after privileges drop ๐Ÿ™‹
  • --hook-as-user-atexit โ€” run the specified hook before app exit and reload ๐Ÿšช
  • --hook-pre-app โ€” run the specified hook before app loading ๐Ÿ“ฆ
  • --hook-post-app โ€” run the specified hook after app loading โœ…
  • --hook-post-fork โ€” run the specified hook after each fork ๐Ÿ”€
  • --hook-accepting โ€” run the specified hook after each worker enters the accepting phase ๐ŸŽฏ
  • --hook-accepting1 โ€” run the specified hook after the first worker enters the accepting phase ๐Ÿฅ‡
  • --hook-accepting-once โ€” run the specified hook after each worker enters the accepting phase, but only once per-instance โ˜๏ธ
  • --hook-accepting1-once โ€” run the specified hook after the first worker enters the accepting phase, once per instance โœ‹
  • --hook-master-start โ€” run the specified hook when the Master starts ๐Ÿ‘‘
  • --hook-touch โ€” run the specified hook when the specified file is touched. syntax: <file> <action> ๐Ÿ‘†
  • --hook-emperor-start โ€” run the specified hook when the Emperor starts ๐Ÿ‘‘โœจ
  • --hook-emperor-stop โ€” run the specified hook when the Emperor sends a stop message ๐Ÿ›‘
  • --hook-emperor-reload โ€” run the specified hook when the Emperor sends a reload message ๐Ÿ”„
  • --hook-emperor-lost โ€” run the specified hook when the Emperor connection is lost ๐Ÿ˜ญ
  • --hook-as-vassal โ€” run the specified hook before exec()ing the vassal ๐Ÿงš
  • --hook-as-emperor โ€” run the specified hook in the emperor after the vassal has been started ๐Ÿ‘‘
  • --hook-as-mule โ€” run the specified hook in each mule ๐Ÿด
  • --hook-as-gateway โ€” run the specified hook in each gateway ๐Ÿšช
  • --after-request-hook โ€” run the specified function/symbol after each request ๐Ÿ”
  • --after-request-call โ€” run the specified function/symbol after each request. same thing, different name bestie ๐Ÿซถ
  • --exec-asap โ€” run the specified command as soon as possible โšก
  • --exec-pre-jail โ€” run the specified command before jailing ๐Ÿ”’
  • --exec-post-jail โ€” run the specified command after jailing ๐Ÿ”“
  • --exec-in-jail โ€” run the specified command in jail after initialization ๐Ÿš”
  • --exec-as-root โ€” run the specified command before privileges drop ๐Ÿ‘‘
  • --exec-as-user โ€” run the specified command after privileges drop ๐Ÿ™‹
  • --exec-as-user-atexit โ€” run the specified command before app exit and reload ๐Ÿšช
  • --exec-pre-app โ€” run the specified command before app loading ๐Ÿ“ฆ
  • --exec-post-app โ€” run the specified command after app loading โœ…
  • --exec-as-vassal โ€” run the specified command before exec()ing the vassal ๐Ÿงš
  • --exec-as-emperor โ€” run the specified command in the emperor after the vassal has been started ๐Ÿ‘‘
  • --mount-asap โ€” mount filesystem as soon as possible โšก
  • --mount-pre-jail โ€” mount filesystem before jailing ๐Ÿ”’
  • --mount-post-jail โ€” mount filesystem after jailing ๐Ÿ”“
  • --mount-in-jail โ€” mount filesystem in jail after initialization ๐Ÿš”
  • --mount-as-root โ€” mount filesystem before privileges drop ๐Ÿ‘‘
  • --mount-as-vassal โ€” mount filesystem before exec()ing the vassal ๐Ÿงš
  • --mount-as-emperor โ€” mount filesystem in the emperor after the vassal has been started ๐Ÿ‘‘
  • --umount-asap โ€” unmount filesystem as soon as possible โšก
  • --umount-pre-jail โ€” unmount filesystem before jailing ๐Ÿ”’
  • --umount-post-jail โ€” unmount filesystem after jailing ๐Ÿ”“
  • --umount-in-jail โ€” unmount filesystem in jail after initialization ๐Ÿš”
  • --umount-as-root โ€” unmount filesystem before privileges drop ๐Ÿ‘‘
  • --umount-as-vassal โ€” unmount filesystem before exec()ing the vassal ๐Ÿงš
  • --umount-as-emperor โ€” unmount filesystem in the emperor after the vassal has been started ๐Ÿ‘‘
  • --wait-for-interface โ€” wait for the specified network interface 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. yeah it's the same thing ๐Ÿซถ
  • --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. another nickname ๐Ÿ“ก
  • --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 specified filesystem item to appear before running root hooks ๐Ÿ’พ
  • --wait-for-file โ€” wait for the specified file to appear before running root hooks ๐Ÿ“„
  • --wait-for-dir โ€” wait for the specified directory to appear before running root hooks ๐Ÿ“
  • --wait-for-mountpoint โ€” wait for the specified mountpoint 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 specified socket to be ready before loading apps ๐Ÿ”Œ
  • --wait-for-socket-timeout โ€” set the timeout for wait-for-socket โฑ๏ธ
  • --call-asap โ€” call the specified function 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 name โœจ
  • -j, --json โ€” load config from a json file ๐Ÿงพ
  • -j, --js โ€” load config from a json file. twin ๐Ÿซถ
  • --weight โ€” weight of the instance (used by clustering/lb/subscriptions) โš–๏ธ
  • --auto-weight โ€” set 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 processes address space/vsz ๐Ÿšง
  • --limit-nproc โ€” limit the number of spawnable processes ๐Ÿšง
  • --reload-on-as โ€” reload if address space is higher than the specified megabytes ๐Ÿ”„
  • --reload-on-rss โ€” reload if rss memory is higher than the specified megabytes ๐Ÿ”„
  • --evil-reload-on-as โ€” force the master to reload a worker if its address space is higher than the specified megabytes ๐Ÿ˜ˆ๐Ÿ”„
  • --evil-reload-on-rss โ€” force the master to reload a worker if its rss memory is higher than the specified megabytes ๐Ÿ˜ˆ๐Ÿ”„
  • --mem-collector-freq โ€” set the memory collector frequency when evil reloads are in place ๐Ÿงน
  • --reload-on-fd โ€” reload if the specified file descriptor 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 available) โšก
  • --never-swap โ€” lock all memory pages, avoiding swapping ๐Ÿ”’
  • --touch-reload โ€” reload uWSGI if the specified file is modified/touched ๐Ÿ‘†๐Ÿ”„
  • --touch-workers-reload โ€” trigger reload of (only) workers if the specified file is modified/touched ๐Ÿ‘†๐Ÿ”ง
  • --touch-mules-reload โ€” reload mules if the specified file is modified/touched ๐Ÿ‘†๐Ÿด
  • --touch-spoolers-reload โ€” reload spoolers if the specified file is modified/touched ๐Ÿ‘†๐ŸŒ€
  • --touch-chain-reload โ€” trigger chain reload if the specified file is modified/touched ๐Ÿ‘†โ›“๏ธ
  • --touch-logrotate โ€” trigger logrotation if the specified file is modified/touched ๐Ÿ‘†๐Ÿ“œ
  • --touch-logreopen โ€” trigger log reopen if the specified file is modified/touched ๐Ÿ‘†๐Ÿ“‚
  • --touch-exec โ€” run command when the specified file is modified/touched. syntax: file command ๐Ÿ‘†โšก
  • --touch-signal โ€” pings a signal when the file you picked gets modified/touched โœจ syntax goes like file signal, so like, both of those, in that order bestie ๐Ÿ’–
  • --fs-reload โ€” graceful reload the second that filesystem object you named gets modified ๐Ÿฆ‹
  • --fs-brutal-reload โ€” brutal reload when that filesystem object gets modified ๐Ÿ˜ค no soft launch, it just goes
  • --fs-signal โ€” raises a uwsgi signal when the specified filesystem object is modified, syntax: file signal ๐Ÿ“ฃ
  • --check-mountpoint โ€” destroys the instance if a filesystem is no longer reachable (genuinely useful for reliable Fuse management, lowkey essential) ๐Ÿ“
  • --mountpoint-check โ€” same energy fr fr: destroys the instance if a filesystem is no more reachable (useful for reliable Fuse management)
  • --check-mount โ€” destroys the instance if a filesystem is no more reachable (useful for reliable Fuse management) ๐Ÿ’…
  • --mount-check โ€” destroys the instance if a filesystem is no more reachable (useful for reliable Fuse management) ๐ŸŽ€
  • --propagate-touch โ€” the over-engineering option, made for systems with flaky signal management ๐Ÿ™ˆ iykyk
  • --limit-post โ€” limits the request body ๐Ÿ›‘
  • --no-orphans โ€” automatically kills workers if the master dies, and yes it can be dangerous for availability, so clock that โš ๏ธ
  • --prio โ€” sets processes/threads priority ๐Ÿ‘‘
  • --cpu-affinity โ€” sets cpu affinity ๐ŸŒˆ
  • --post-buffering โ€” sets the size in bytes after which it buffers to disk instead of memory ๐Ÿ’พ
  • --post-buffering-bufsize โ€” sets the buffer size for read() in post buffering mode ๐Ÿ“–
  • --body-read-warning โ€” sets how much memory allocation (in megabytes) for the request body is allowed before it starts printing a warning ๐Ÿšจ
  • --upload-progress โ€” enables creation of .json files in the directory you pick during a file upload ๐Ÿ“‚
  • --no-default-app โ€” do not fallback to the default app, nope ๐Ÿ™…โ€โ™€๏ธ
  • --manage-script-name โ€” automatically rewrites SCRIPT_NAME and PATH_INFO ๐Ÿช„
  • --ignore-script-name โ€” ignores SCRIPT_NAME ๐Ÿ’€
  • --catch-exceptions โ€” reports the exception as http output (discouraged, use only for testing โ€” like, only testing bestie) ๐Ÿงช
  • --reload-on-exception โ€” reloads a worker the moment an exception is raised ๐Ÿ”„
  • --reload-on-exception-type โ€” reloads a worker when a specific exception type is raised ๐ŸŽฏ
  • --reload-on-exception-value โ€” reloads a worker when a specific exception value is raised ๐Ÿ’ฅ
  • --reload-on-exception-repr โ€” reloads a worker when a specific exception type+value (language-specific) is raised ๐Ÿซถ
  • --exception-handler โ€” adds an exception handler ๐Ÿงค
  • --enable-metrics โ€” turns on the metrics subsystem ๐Ÿ“Š
  • --metric โ€” adds a custom metric โœจ
  • --metric-threshold โ€” adds a metric threshold/alarm ๐Ÿšจ
  • --metric-alarm โ€” adds a metric threshold/alarm (same thing, different name, iconic) ๐Ÿ””
  • --alarm-metric โ€” adds a metric threshold/alarm, yes again, they really said options for days ๐ŸŽ€
  • --metrics-dir โ€” exports metrics as text files into the directory you name ๐Ÿ—‚๏ธ
  • --metrics-dir-restore โ€” restores the last value taken from the metrics dir โ™ป๏ธ
  • --metric-dir โ€” exports metrics as text files to the specified directory (the singular twin of the above) ๐Ÿ“
  • --metric-dir-restore โ€” restores the last value taken from the metrics dir โ™ป๏ธ
  • --metrics-no-cores โ€” disables generation of cores-related metrics ๐Ÿšซ
  • --udp โ€” runs the udp server on the address you give it ๐Ÿ“ก
  • --stats โ€” enables the stats server on the specified address ๐Ÿ“ˆ
  • --stats-server โ€” enables the stats server on the specified address (same vibe) ๐Ÿ“Š
  • --stats-http โ€” prefixes the stats server json output with http headers ๐ŸŒ
  • --stats-minified โ€” minifies the statistics json output ๐Ÿ—œ๏ธ
  • --stats-min โ€” minifies the statistics json output, short and sweet โœ‚๏ธ
  • --stats-push โ€” pushes the stats json to the destination you specify ๐Ÿš€
  • --stats-pusher-default-freq โ€” sets the default frequency of stats pushers โฑ๏ธ
  • --stats-pushers-default-freq โ€” sets the default frequency of stats pushers (plural moment) โฐ
  • --stats-no-cores โ€” disables generation of cores-related stats ๐Ÿ™…
  • --stats-no-metrics โ€” do not include metrics in stats output ๐Ÿšซ
  • --multicast โ€” subscribes to the specified multicast group ๐Ÿ“ป
  • --multicast-ttl โ€” sets the multicast ttl โณ
  • --multicast-loop โ€” sets multicast loop, and the default is 1 ๐Ÿ”
  • --master-fifo โ€” enables the master fifo ๐ŸŽ›๏ธ
  • --notify-socket โ€” enables the notification socket ๐Ÿ””
  • --subscription-notify-socket โ€” sets the notification socket for subscriptions ๐Ÿ“ฌ
  • --legion โ€” becomes a member of a legion ๐Ÿ›ก๏ธ
  • --legion-mcast โ€” becomes a member of a legion, i.e. a shortcut for multicast โšก
  • --legion-node โ€” adds a node to a legion ๐ŸŒŸ
  • --legion-freq โ€” sets the frequency of legion packets ๐Ÿ“ถ
  • --legion-tolerance โ€” sets the tolerance of the legion subsystem ๐Ÿซง
  • --legion-death-on-lord-error โ€” declares itself as a dead node for however many seconds you specify if one of the lord hooks fails ๐Ÿ’€
  • --legion-skew-tolerance โ€” sets the clock skew tolerance of the legion subsystem, default is 60 seconds โฒ๏ธ
  • --legion-lord โ€” the action to call on Lord election ๐Ÿ‘‘
  • --legion-unlord โ€” the action to call on Lord dismiss ๐Ÿ‘‹
  • --legion-setup โ€” the action to call on legion setup ๐Ÿ› ๏ธ
  • --legion-death โ€” the action to call on legion death (shutdown of the instance) โšฐ๏ธ
  • --legion-join โ€” the action to call on legion join (the first time quorum is reached) ๐ŸŽ‰
  • --legion-node-joined โ€” the action to call on a new node joining the legion ๐Ÿซ‚
  • --legion-node-left โ€” the action to call on a node leaving the legion ๐Ÿšช
  • --legion-quorum โ€” sets the quorum of a legion ๐Ÿ—ณ๏ธ
  • --legion-scroll โ€” sets the scroll of a legion ๐Ÿ“œ
  • --legion-scroll-max-size โ€” sets the max size of the legion scroll buffer ๐Ÿ“ฆ
  • --legion-scroll-list-max-size โ€” sets the max size of the legion scroll list buffer ๐Ÿ—ƒ๏ธ
  • --subscriptions-sign-check โ€” sets the digest algorithm and certificate directory for the secured subscription system ๐Ÿ”
  • --subscriptions-sign-check-tolerance โ€” sets the maximum tolerance (in seconds) of clock skew for the secured subscription system โฑ๏ธ
  • --subscriptions-sign-skip-uid โ€” skips the signature check for the uid you specify when using unix sockets credentials ๐Ÿ™ˆ
  • --subscriptions-credentials-check โ€” adds a directory to search for subscriptions key credentials ๐Ÿ”Ž
  • --subscriptions-use-credentials โ€” enables management of SCM_CREDENTIALS in subscriptions UNIX sockets ๐Ÿ”‘
  • --subscription-algo โ€” sets the load balancing algorithm for the subscription system โš–๏ธ
  • --subscription-dotsplit โ€” tries to fallback to the next part (dot based) in the subscription key ๐Ÿ”ค
  • --subscribe-to โ€” subscribes to the specified subscription server ๐Ÿ“จ
  • --st โ€” subscribes to the specified subscription server (the tiny abbreviation, so cute) ๐Ÿ“ฉ
  • --subscribe โ€” subscribes to the specified subscription server ๐Ÿ“ฎ
  • --subscribe2 โ€” subscribes to the specified subscription server using advanced keyval syntax ๐Ÿง 
  • --subscribe-freq โ€” sends a subscription announce at the interval you specify ๐Ÿ”
  • --subscription-tolerance โ€” sets tolerance for subscription servers ๐Ÿซถ
  • --unsubscribe-on-graceful-reload โ€” forces the unsubscribe request even during a graceful reload ๐Ÿ’…
  • --start-unsubscribed โ€” configures subscriptions but does not send them (useful with master fifo) ๐Ÿค
  • --subscribe-with-modifier1 โ€” forces the specified modifier1 when subscribing โœ๏ธ (yes the original says "specififed", we keep it, periodt)
  • --snmp โ€” enables the embedded snmp server ๐ŸŒฒ
  • --snmp-community โ€” sets the snmp community string ๐Ÿ˜๏ธ
  • --ssl-verbose โ€” be verbose about SSL errors ๐Ÿ“ข
  • --ssl-verify-depth โ€” sets the maximum certificate verification depth ๐Ÿ•ต๏ธโ€โ™€๏ธ
  • --sni โ€” adds an SNI-governed SSL context ๐ŸŒน
  • --sni-dir โ€” checks for cert/key/client_ca files in the specified directory and creates a sni/ssl context on demand ๐Ÿช„
  • --sni-dir-ciphers โ€” sets ssl ciphers for the sni-dir option ๐Ÿ”’
  • --ssl-enable3 โ€” enables SSLv3, which is insecure, so like, careful โš ๏ธ
  • --ssl-enable-sslv3 โ€” enables SSLv3 (insecure) ๐Ÿšจ
  • --ssl-enable-tlsv1 โ€” enables TLSv1 (insecure, still, yes) ๐Ÿ’€
  • --ssl-option โ€” sets a raw ssl option, and it wants a numeric value ๐Ÿ”ข
  • --sni-regexp โ€” adds an SNI-governed SSL context, but the key is a regexp ๐Ÿงฉ
  • --ssl-tmp-dir โ€” stores ssl-related temp files in the directory you specify ๐Ÿ—„๏ธ
  • --check-interval โ€” sets the interval (in seconds) of master checks โฐ
  • --forkbomb-delay โ€” sleeps for the number of seconds you specify when a forkbomb is detected ๐Ÿ˜ด
  • --binary-path โ€” forces the binary path ๐Ÿ“
  • --privileged-binary-patch โ€” patches the uwsgi binary with a new command (before privileges drop) ๐Ÿ”ง
  • --unprivileged-binary-patch โ€” patches the uwsgi binary with a new command (after privileges drop) ๐Ÿช›
  • --privileged-binary-patch-arg โ€” patches the uwsgi binary with a new command and arguments (before privileges drop) ๐Ÿงฐ
  • --unprivileged-binary-patch-arg โ€” patches the uwsgi binary with a new command and arguments (after privileges drop) ๐Ÿง‘โ€๐Ÿ”ง
  • --async โ€” enables async mode with however many cores you specify โšก
  • --max-fd โ€” sets the maximum number of file descriptors, and it requires root privileges ๐Ÿ‘‘
  • --logto โ€” sets the logfile/udp address ๐Ÿ“
  • --logto2 โ€” logs to the specified file or udp address after privileges drop ๐Ÿ“„
  • --log-format โ€” sets an advanced format for request logging ๐ŸŽจ
  • --logformat โ€” sets advanced format for request logging (one word, same energy) ๐Ÿ–Œ๏ธ
  • --logformat-strftime โ€” applies strftime to logformat output ๐Ÿ•ฐ๏ธ
  • --log-format-strftime โ€” applies strftime to logformat output (identical, we love a pair) โณ
  • --logfile-chown โ€” chowns logfiles ๐Ÿ‘ค
  • --logfile-chmod โ€” chmods logfiles ๐Ÿ”ง
  • --log-syslog โ€” logs to syslog ๐Ÿ“ฎ
  • --log-socket โ€” sends logs to the socket you specify ๐Ÿ”Œ
  • --req-logger โ€” sets/appends a request logger โž•
  • --logger-req โ€” sets/appends a request logger (yes, same thing reversed) ๐Ÿ”
  • --logger โ€” sets/appends a logger ๐Ÿชต
  • --logger-list โ€” lists enabled loggers ๐Ÿ“‹
  • --loggers-list โ€” lists enabled loggers (plural era) ๐Ÿ—’๏ธ
  • --threaded-logger โ€” offloads log writing to a thread ๐Ÿงต
  • --log-encoder โ€” adds an item in the log encoder chain โ›“๏ธ
  • --log-req-encoder โ€” adds an item in the log req encoder chain ๐Ÿ”—
  • --log-drain โ€” drains (like, does not show) log lines matching the regexp you specify ๐Ÿ•ณ๏ธ
  • --log-filter โ€” shows only log lines matching the specified regexp ๐Ÿ”
  • --log-route โ€” logs to the specified named logger if the regexp applied on the logline matches ๐Ÿš
  • --log-req-route โ€” logs requests to the specified named logger if the regexp applied on the logline matches ๐Ÿ›ค๏ธ
  • --use-abort โ€” calls abort() on segfault/fpe, which could be useful for generating a core dump ๐Ÿงจ
  • --alarm โ€” creates a new alarm, syntax: <alarm> <plugin:args> ๐Ÿšจ๐Ÿ’–

  • --alarm-cheap โ€” ๐Ÿ’ธ ok so this one makes uWSGI use the main alarm thread instead of spawning dedicated threads for curl-based alarms. server said "we're not making a whole new thread for that" ๐Ÿ’…
  • --alarm-freq โ€” tunes the anti-loop alarm system. default is 3 seconds โฐ
  • --alarm-fd โ€” raise the specified alarm when an fd is read for read (by default it reads 1 byte, set 8 for eventfd) ๐ŸŽ€
  • --alarm-segfault โ€” raise the specified alarm when the segmentation fault handler is executed ๐Ÿ’€
  • --segfault-alarm โ€” same description as --alarm-segfault, word for word: raise the specified alarm when the segmentation fault handler is executed ๐Ÿ’€โœจ
  • --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 ๐Ÿ“ฌ
bestie there are literally six of these and they all say the exact same thing. the manpage lists all of them, so here they all are. she's thorough, okay, she contains multitudes ๐Ÿซถ
  • --log-alarm โ€” raise the specified alarm when a log line matches the specified regexp. syntax is <alarm>[,alarm...] <regexp> ๐Ÿ”
  • --alarm-log โ€” raise the specified alarm when a log line matches the specified regexp, same syntax: <alarm>[,alarm...] <regexp> ๐Ÿ”
  • --not-log-alarm โ€” the skip version: 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 is 8192 ๐Ÿ“

โœจ the logging era โœจ

  • --log-master โ€” delegate logging to the master process ๐Ÿ‘‘
  • --log-master-bufsize โ€” set the buffer size for the master logger. heads up: bigger log messages will be truncated โœ‚๏ธ
  • --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 log after reload ๐Ÿ”„
  • --log-truncate โ€” truncate log on startup ๐Ÿงน
  • --log-maxsize โ€” set maximum logfile size ๐Ÿ“ฆ
  • --log-backupname โ€” set logfile name after rotation ๐Ÿ”
  • --logdate โ€” prefix logs with date or a strftime string ๐Ÿ—“๏ธ
  • --log-date โ€” prefix logs with date or a strftime string ๐Ÿ—“๏ธ
  • --log-prefix โ€” prefix logs with a string ๐Ÿท๏ธ
  • --log-zero โ€” log responses without 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 ๐Ÿงฎ
  • --log-x-forwarded-for โ€” use the ip from X-Forwarded-For header instead of REMOTE_ADDR ๐ŸŒ

๐Ÿ’œ privileges & where she starts from ๐Ÿ’œ

  • --master-as-root โ€” leave 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 fallback to /bin/sh) ๐Ÿš
  • --chdir โ€” chdir to specified directory before apps loading ๐Ÿšช
  • --chdir2 โ€” chdir to specified directory after apps loading ๐Ÿšช

๐ŸŒธ workers, laziness & the cheaper economy ๐ŸŒธ

  • --lazy โ€” set lazy mode (load apps in workers instead of 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 to algorithm used for adaptive process spawning ๐Ÿง 
  • --cheaper-step โ€” number of additional processes to spawn at each overload โž•
  • --cheaper-overload โ€” increase workers after 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 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 (put uWSGI in cheap mode after inactivity) ๐Ÿ˜ด
  • --die-on-idle โ€” shutdown uWSGI when idle ๐Ÿ’€
  • --mount โ€” load application under mountpoint โ›ฐ๏ธ
  • --worker-mount โ€” load application under 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 threads stacksize ๐Ÿ“š
  • --threads-stacksize โ€” set threads stacksize ๐Ÿ“š
  • --thread-stack-size โ€” set threads stacksize ๐Ÿ“š
  • --threads-stack-size โ€” set threads stacksize ๐Ÿ“š
  • --vhost โ€” enable virtualhosting mode (based on SERVER_NAME variable) ๐Ÿ 
  • --vhost-host โ€” enable virtualhosting mode (based on HTTP_HOST variable) ๐Ÿ 

๐Ÿฆ‹ routing, my beloved ๐Ÿฆ‹

  • --route โ€” add a route ๐Ÿ›ฃ๏ธ
  • --route-host โ€” add a route based on 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 condition ๐Ÿค”
  • --route-if-not โ€” add a route based on 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 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 condition ๐Ÿ
  • --final-route-if-not โ€” add a final route based on 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 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 condition ๐Ÿšจ
  • --error-route-if-not โ€” add an error route based on 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 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 condition ๐Ÿ“จ
  • --response-route-if-not โ€” add a response route based on condition (negate version) ๐Ÿ“จ
  • --response-route-run โ€” always run the specified response route action ๐Ÿ“จ
  • --router-list โ€” list enabled routers ๐Ÿ“‹
  • --routers-list โ€” list enabled routers ๐Ÿ“‹

๐ŸŽ€ error pages & websockets & clocks ๐ŸŽ€

  • --error-page-403 โ€” add an error page (html) for managed 403 response ๐Ÿšซ
  • --error-page-404 โ€” add an error page (html) for managed 404 response ๐Ÿ”
  • --error-page-500 โ€” add an error page (html) for 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 websockets ping/pong subsystem ๐Ÿ“
  • --websocket-pong-tolerance โ€” set the tolerance (in seconds) of 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 default timeout for chunked input โณ
  • --clock โ€” set a clock source ๐Ÿ•ฐ๏ธ
  • --clock-list โ€” list enabled clocks ๐Ÿ“‹
lowkey the clock ones feel like a lil cliffhanger and that's because they ARE. more coming, bestie, don't go anywhere ๐ŸŒˆ
  • --clocks-list โ€” show off every clock that's currently enabled, bestie โŒšโœจ
  • --add-header โ€” auto-slaps HTTP headers onto the response, no manual labour required ๐Ÿ’–
  • --rem-header โ€” auto-yeets the specified HTTP header out of the response ๐Ÿ—‘๏ธ
  • --del-header โ€” literally the same thing: auto-removes the specified HTTP header from the response
  • --collect-header โ€” stores the specified response header into a request var (syntax: header var) ๐Ÿ“ฅ
  • --response-header-collect โ€” yep, same energy: stores the specified response header in a request var (syntax: header var)
  • --pull-header โ€” stores the specified response header in a request var and pulls it out of the response (syntax: header var) โ€” it's giving "you can look but you can't keep it"
  • --check-static โ€” peek for static files in the directory you named ๐Ÿ“‚
  • --check-static-docroot โ€” peek for static files in the requested DOCUMENT_ROOT
  • --static-check โ€” once again, check for static files in the specified directory (twins fr)
  • --static-map โ€” maps a mountpoint to a static directory (or a file)
  • --static-map2 โ€” like --static-map but it fully appends the requested resource onto the docroot
  • --static-skip-ext โ€” skips the extension you name when doing staticfile checks ๐Ÿ™ˆ
  • --static-index โ€” if someone asks for a directory, search for the file you specify instead
  • --static-safe โ€” skips security checks when the file lives under the path you gave
  • --static-cache-paths โ€” drops resolved paths into the uWSGI cache for however many seconds you say ๐Ÿ—‚๏ธ
  • --static-cache-paths-name โ€” use the cache you named for static paths
  • --mimefile โ€” set the mime types file path (default /etc/mime.types)
  • --mime-file โ€” set the mime types file path (default /etc/mime.types) โ€” same option, different spelling, iconic behaviour
  • --static-expires-type โ€” sets the Expires header based on content type
  • --static-expires-type-mtime โ€” sets the Expires header based on content type and 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 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 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 file mtime
  • --static-gzip โ€” if your regexp matches the static file translation, it goes 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 in the dir/prefix you name
  • --static-gzip-prefix โ€” checks for a gzip version of all requested static files in the dir/prefix you name (same vibe, same job)
  • --static-gzip-ext โ€” checks for a gzip version of all requested static files with the ext/suffix you name
  • --static-gzip-suffix โ€” checks for a gzip version of all requested static files with the ext/suffix you name
  • --honour-range โ€” turns on support for the HTTP Range header ๐Ÿ”ฅ
  • --offload-threads โ€” sets how many offload threads to spawn (per-worker, default 0)
  • --offload-thread โ€” sets how many offload threads to spawn (per-worker, default 0) โ€” singular name, same energy
  • --file-serve-mode โ€” set the static file serving mode
  • --fileserve-mode โ€” set the static file serving mode (yes bestie, it's the same thing)
  • --disable-sendfile โ€” disables sendfile() and leans on boring old read()/write() instead ๐Ÿ˜ด
  • --check-cache โ€” check 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 inside requests)
  • --close-on-exec2 โ€” sets close-on-exec on server sockets (could be required for spawning processes inside requests)
  • --mode โ€” set a uWSGI custom mode
  • --env โ€” set an environment variable ๐ŸŒฑ
  • --envdir โ€” load a daemontools-compatible envdir
  • --early-envdir โ€” load a daemontools-compatible envdir ASAP โšก
  • --unenv โ€” unset an environment variable ๐Ÿšซ
  • --vacuum โ€” tries to remove every generated file/socket when it's done ๐Ÿงน
  • --file-write โ€” writes the content you give to the file you give (syntax: file=value) before privileges get dropped
  • --cgroup โ€” put the processes into the cgroup you name
  • --cgroup-opt โ€” set a value in the cgroup option you name
  • --cgroup-dir-mode โ€” sets permission for the cgroup directory (default is 700) ๐Ÿ”
  • --namespace โ€” run in a new namespace under the specified rootfs
  • --namespace-keep-mount โ€” keep the mountpoint you name in your namespace
  • --ns โ€” run in a new namespace under the specified rootfs (short king ๐Ÿ‘‘)
  • --namespace-net โ€” add a network namespace
  • --ns-net โ€” add a network namespace (same one, snappier name)
  • --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 โ€” enables the TCP_FASTOPEN flag on TCP sockets with the qlen value you give
  • --tcp-fast-open-client โ€” uses sendto(..., MSG_FASTOPEN, ...) instead of connect() if it's supported
  • --tcp-fastopen-client โ€” uses sendto(..., MSG_FASTOPEN, ...) instead of connect() if it's supported
  • --zerg โ€” attach 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 โ€” add a cron task โฐ
  • --cron2 โ€” add a cron task (key=val syntax)
  • --unique-cron โ€” add a unique cron task
  • --cron-harakiri โ€” sets the max time (in seconds) we wait for a cron command to finish
  • --legion-cron โ€” add a cron task that only runs when the instance is a lord of the legion you name โš”๏ธ
  • --cron-legion โ€” add a cron task that only runs when the instance is a lord of the legion you name
  • --unique-legion-cron โ€” add a unique cron task that only runs when the instance is a lord of the legion you name
  • --unique-cron-legion โ€” add a unique cron task that only runs when the instance is a lord of the legion you name
  • --loop โ€” select the uWSGI loop engine ๐Ÿ”
  • --loop-list โ€” list the loop engines that are enabled
  • --loops-list โ€” list the loop engines that are enabled (plural, same list)
  • --worker-exec โ€” run the command you name as a worker
  • --worker-exec2 โ€” run the command you name as a worker (after the post_fork hook)
  • --attach-daemon โ€” attach a command/daemon to the master process (the command has to not go into the background)
  • --attach-control-daemon โ€” attach a command/daemon to the master process (the command has to not go into the background); when the daemon dies, the master dies too ๐Ÿ’€
  • --smart-attach-daemon โ€” attach a command/daemon to the master process managed by a pidfile (the command has to daemonize)
  • --smart-attach-daemon2 โ€” attach a command/daemon to the master process managed by a pidfile (the command has to NOT daemonize)
  • --legion-attach-daemon โ€” same as --attach-daemon but the daemon only runs on the legion lord node
  • --legion-smart-attach-daemon โ€” same as --smart-attach-daemon but the daemon only runs on the legion lord node
  • --legion-smart-attach-daemon2 โ€” same as --smart-attach-daemon2 but the daemon only runs on the legion lord node
  • --daemons-honour-stdin โ€” do not change the stdin of external daemons to /dev/null
  • --attach-daemon2 โ€” the attach-daemon keyval variant (supports smart modes too)
  • --plugins โ€” load uWSGI plugins ๐Ÿงฉ
  • --plugin โ€” load uWSGI plugins
  • --need-plugins โ€” load uWSGI plugins (exit on error)
  • --need-plugin โ€” load uWSGI plugins (exit on error)
  • --plugins-dir โ€” add a directory to the uWSGI plugin search path
  • --plugin-dir โ€” add a directory to the uWSGI plugin search path
  • --plugins-list โ€” list the plugins that are enabled
  • --plugin-list โ€” list the plugins that are enabled
  • --autoload โ€” try to automatically load plugins when it bumps into unknown options โœจ
  • --dlopen โ€” blindly load a shared library ๐Ÿ™ˆ
  • --allowed-modifiers โ€” a comma-separated list of allowed modifiers
  • --remap-modifier โ€” remap a request modifier from one id to another
  • --dump-options โ€” dump the whole list of available options
  • --show-config โ€” show the current config reformatted as ini
  • --binary-append-data โ€” return the content of a resource to stdout for appending to a uwsgi binary (for data:// usage)
  • --print โ€” simple print ๐Ÿ–จ๏ธ
  • --iprint โ€” simple print, immediate version โšก
  • --exit โ€” force an exit() of the instance ๐Ÿšช
  • --cflags โ€” report the uWSGI CFLAGS (useful for building external plugins)
  • --dot-h โ€” dump the uwsgi.h used for building the core (useful for building external plugins)
  • --config-py โ€” dump the uwsgiconfig.py used for building the core (useful for building external plugins)
  • --build-plugin โ€” build a uWSGI plugin for the current binary ๐Ÿ”จ
  • --version โ€” print the uWSGI version
  • --response-headers-limit โ€” set the response header maximum size (default: 64k)

And that's a wrap on the options, bestie ๐ŸŽ€ you just read through a lot of them and honestly? slay. This page is from uwsgi_alarm_xmpp version 2.0.31-debian, dated July 2026, and it's filed under UWSGI_ALARM_XMPP(1). Go forth and sysadmin like the main character you are ๐Ÿ’…๐ŸŒˆ๐Ÿ‘‘

๐Ÿ“ฆ where this page comes from