EnglishFrenchSpanish

Ad


OnWorks favicon

launchtool - Online in the Cloud

Run launchtool in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command launchtool that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

PROGRAM:

NAME


launchtool - run a command supervising its execution.

SYNOPSIS


launchtool [options] [command]

DESCRIPTION


launchtool is a tool that runs a user-supplied command and can supervise its execution in
many ways, such as controlling its environment, blocking signals, logging its output,
changing user and group permissions, limiting resource usage, restarting it if it fails,
running it continuously and turning it into a daemon.

launchtool is fully configurable, both through the commandline and using configuration
files. Configuration files can be made executable and start with “#!/usr/bin/launchtool
-C”, to create daemons using simpler commands.

INVOCATION


launchtool executes the command it finds in the commandline, via switches or the
configuration file. All non-switch parameters are concatenated to the command, that will
be executed using “/bin/sh -c”.

launchtool default mode of execution is to run the command normally and return its exit
status. All features are disabled by default and activated using commandline options or
values in the configuration file. Commandline options override configuration files.

launchtool sessions are identified by a tag that is used both to mark the command output
in logfiles and to identify running sessions to check if they have already been started or
send them a signal without specifying the process PID.

OPTIONS


launchtool follows the usual GNU command line syntax, with long options starting with two
dashes (`-').

-?, --help
Display a detailed help message with a summary of all options.

--usage
Display a brief usage message.

-k, --kill[=signal]
Kill a running launchtool with the specified signal (15 by default) and exit. No
signal name parsing is (yet) provided, so the signal must be specified by its
number.

--check
Check if another launchtool is running, then exit.

--showcfg
Process config files and commandline, show the resulting configuration and exit.

-V, --version
Print version and exit.

-t, --tag=tag, “tag”
Tag used to identify the session

-C, --config=file
Read configuration data from “file”. Defaults to /etc/launchtool/<tag>.conf

-v, --verbose, “verbose”
Enable verbose output.

--no-verbose
Disable verbose output.

--debug, “debug”
Enable debug output (includes --verbose output).

--no-debug
Disable debug output.

-c, --command=cmd, “command”
Command to execute.

--visible-tag=tag, “visible tag”
Tag to use for pidfiles and logfiles instead of “launchtool-<tag>”.

-d, --daemon, “daemon”
Fork to background and detach from terminal, becoming a daemon.

-n, --no-daemon
Don't become a daemon.

--pidfile, “pidfile”
Create a pidfile (default when --daemon is used).

--no-pidfile
Don't create a pidfile (default when --daemon is not used).

--piddir=dir, “piddir”
Directory where pidfiles are stored (default to /var/run).

--chroot=dir, “root dir”
Chroot to this directory before running the command.

--chdir=dir, “start dir”
Chdir to this directory before running the command (default to '.' or '/' if
--daemon is present).

-u, --user=user, “user”
User privileges to run the command with.

-g, --group=group, “group”
Group privileges to run the command with.

--umask=mask, “umask”
Set this umask before running the command.

-L, --infinite-runs, “infinite runs”
Never give up restarting the command if it fails.

--no-infinite-runs
Give up restarting the command after a certain number of failures.

--wait-times=t1,t2,... , “wait times”
List of times (in seconds) to wait after a program failure before restarting it.
If not specified, failed commands will not be restarted.

--good-running-time=seconds, “good running time”
Minimum running time needed to restart for the first wait time.

--forwarded-signals=sig1,sig2,... , “forwarded signals”
List of signals (in name or in number) to be forwarded to the command.

--blocked-signals=sig1,sig2,... , “blocked signals”
List of signals (in name or in number) to be blocked before running the command.

--limit-cpu=seconds, “cpu limit”
CPU time limit for the command (see setrlimit(2)).

--limit-file-size=1024b-blocks, “file size limit”
File size limit for the command (see setrlimit(2)).

--limit-data-memory=1024b-blocks, “data memory limit”
Data memory size limit for the command (see setrlimit(2)).

--limit-process-count=count, “process count limit”
Process count limit for the command (see setrlimit(2)).

--limit-open-files=count, “open files limit”
Open files limit for the command (see setrlimit(2)).

--limit-core-size=1024b-blocks, “core size limit”
Core file size limit for the command (see setrlimit(2)).

--restrict-environment, “restrict environment”
Restrict the child environment.

--no-restrict-environment
Copy all environment variables to the child environment.

--allowed-env-vars=var1,var2,... , “allowed env vars”
List of environment variables to be copied to the child when the environment is
restricted.

--log-launchtool-output=target, “launchtool output”
Target of the launchtool output (ignore, stdout, stderr, file:filename or
syslog:identity,facility,level).

--log-launchtool-errors=target, “launchtool errors”
Target of the launchtool error messages (ignore, stdout, stderr, file:filename or
syslog:identity,facility,level).

--log-child-output=target, “command output”
Target of the child output (ignore, stdout, stderr, file:filename or
syslog:identity,facility,level).

--log-child-errors=target, “command errors”
Target of the child error messages (ignore, stdout, stderr, file:filename or
syslog:identity,facility,level).

--silent-restart-status=value, “silent restart status”
Return value used by the child to explicitly request a restart (feature disabled if
not specified).

--silent-restart-time=seconds, “silent restart time”
Time to wait before restarting the child after an explicit restart request.

--stats, “stats”
Produce some statistics when the command terminates (implied by --verbose).

--no-stats
Do not produce statistics when the command terminates.

LOGGING TARGETS


Logging targets are specified with a target name and its optional parameters, separated by
a colon (“:”).

Possible target configurations are:

ignore Output is just discarded.

stdout Output goes to the standard output stream.

stderr Output goes to the standard error stream.

file:filename
Output goes to the file “filename”.

syslog:identity,facility,level
Output goes to syslog, with the given identity (a string identifying the logger),
facility (see syslog(3)) and level (see syslog(3)).

CONFIGURATION FILE


The configuration file is a sequence of “key = value” lines. Empty lines and lines
starting with '#' are ignored.

The possible keys have been listed in the OPTIONS section next to the corresponding
commandline switch.

Boolean (yes/no) values can take the values “yes”, “no”, “true”, “false”, “0” and “1”.

EXAMPLES


# Running a command normally

launchtool -t tag 'echo "Hello, world!"'

# Run a command restarting it if it fails:

launchtool -t tag --wait-times=1,1,1,3,3,3,10,10,10 'my_wonderful_server'

# Run a command, with restrictions, restarting it if it fails, as a daemon

launchtool -t myserver -d --user=myserver --chroot=/var/myserver \
--limit-process-count=5 --limit-open-files=10 \
--wait-times=1,1,1,3,3,3,10,10,10 \
--infinite-runs --stats \
--log-launchtool-output=syslog:myserver,LOG_DAEMON,LOG_INFO \
--log-launchtool-errors=syslog:myserver,LOG_DAEMON,LOG_ERR \
--log-child-output=syslog:myserver,LOG_DAEMON,LOG_INFO \
--log-child-errors=syslog:myserver,LOG_DAEMON,LOG_ERR \
'my_experimental_server'

# Same thing, using a configuration file

tag = myserver
command = my_wonderful_server
daemon = yes
stats = yes
user = myserver
root dir = /var/myserver
process count limit = 5
open files limit = 10
wait times = 1,1,1,3,3,3,10,10,10
infinite runs = yes
launchtool output = syslog:myserver,LOG_DAEMON,LOG_INFO
launchtool errors = syslog:myserver,LOG_DAEMON,LOG_ERR
command output = syslog:myserver,LOG_DAEMON,LOG_INFO
command errors = syslog:myserver,LOG_DAEMON,LOG_ERR

# Transform a shell command in a polling daemon
# Make the file /tmp/have_mobile exist only if my cell phone is present in the
# IRDA discovery list

launchtool -t celldetect -d --silent-restart-time=5 --silent-restart-status=0 --user=nobody \
"if grep -q SIEMENS /proc/sys/net/irda/discovery; then touch /tmp/have_mobile; else rm -f /tmp/have_mobile; fi ; exit 0"

# Ceck if the celldetect daemon is running

launchtool -t celldetect --check

# Kill the celldetect daemon launched with the command above

launchtool -t celldetect -k

# Same polling daemon, with an executable configuration file

#!/usr/bin/launchtool -C
tag = celldetect
command = if grep -q SIEMENS /proc/sys/net/irda/discovery; then touch /tmp/have_mobile; else rm -f /tmp/have_mobile; fi ; exit 0
daemon = yes
user = nobody
silent restart time = 5
silent restart status = 0

# Ceck if the celldetect daemon is running, using the executable configuration
# file

celldetect --check

# Kill the celldetect daemon using the executable configuration file

celldetect -k

Use launchtool online using onworks.net services


Free Servers & Workstations

Download Windows & Linux apps

  • 1
    ExpressLuke GSI
    ExpressLuke GSI
    This SourceForge download page was to
    grant users to download my source built
    GSIs, based upon phhusson's great
    work. I build both Android Pie and
    Android 1...
    Download ExpressLuke GSI
  • 2
    PyQt
    PyQt
    PyQt is the Python bindings for
    Digia's Qt cross-platform
    application development framework. It
    supports Python v2 and v3 and Qt v4 and
    Qt v5. PyQt is avail...
    Download PyQt
  • 3
    garlic3
    garlic3
    Gambas3* coding tools and examples for
    use in SMB or other organizations that
    make internal programs. E.g. from
    database fields to class sourcecode with
    DbInfo...
    Download garlic3
  • 4
    Sardi
    Sardi
    Sardi is a complete restyling and
    optimisation of svg code. 6 choices for
    your applications and 10 kind of folders
    to use in your file manager. The sardi
    icons...
    Download Sardi
  • 5
    LMMS Digital Audio Workstation
    LMMS Digital Audio Workstation
    LMMS is a free cross-platform software
    which allows you to produce music with
    your computer. If you like this project
    consider getting involved in the project
    h...
    Download LMMS Digital Audio Workstation
  • 6
    FreeRTOS Real Time Kernel (RTOS)
    FreeRTOS Real Time Kernel (RTOS)
    FreeRTOS is a market-leading real-time
    operating system (RTOS) for
    microcontrollers and small
    microprocessors. Distributed freely
    under the MIT open source lice...
    Download FreeRTOS Real Time Kernel (RTOS)
  • 7
    Avogadro
    Avogadro
    Avogadro is an advanced molecular
    editor designed for cross-platform use
    in computational chemistry, molecular
    modeling, bioinformatics, materials
    science and ...
    Download Avogadro
  • More »

Linux commands

Ad