---
name: "startpar"
section: "8"
platform: "linux"
package: "startpar"
version: "0.61-1"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/startpar/8"
---

# startpar(8)

start runlevel scripts in parallel

## NAME

startpar - start runlevel scripts in parallel

## SYNOPSIS

**startpar** \[**-p** *par*\] \[**-i** *iorate*\] \[**-e** *etcdir*\] \[**-t** *timeout*\] \[**-T** *global\_timeout*\] \[**-a** *arg*\] **prg1** **prg2** **...**\
 **startpar** \[**-p** *par*\] \[**-i** *iorate*\] \[**-t** *timeout*\] \[**-T** *global\_timeout*\] **-M \[** *boot*\|*start*\|*stop*\]\
 **startpar** \[**-f**\]\

## DESCRIPTION

startpar is used to run multiple run-level scripts in parallel. The degree of parallelism on one **CPU** can be set with the **-p** option, the default is full parallelism. An argument to all of the scripts can be provided with the **-a** option. Processes blocked by pending **I/O** will cause new process creation to be weighted by the iorate factor *800*. To change this factor the option **-i** can be used to specify another value.  The amount weight = (nblocked times iorate) / 1000 will be subtracted from the total number of processes which could be started, where nblocked is the number of processes currently blocked by pending I/O.

The output of each script is buffered and written when the script exits, so output lines of different scripts won't mix. You can modify this behaviour by setting a timeout.

The timeout set with the **-t** option is used as buffer timeout. If the output buffer of a script is not empty and the last output was *timeout* seconds ago, startpar will flush the buffer.

The **-T** option timeout works more globally. If no output is printed for more than *global\_timeout* seconds, startpar will flush the buffer of the script with the oldest output. Afterwards it will only print output of this script until it is finished.

The **-M** option switches **startpar** into a [**make**(1)](/make/1.md) like behaviour.  This option takes three different arguments: *boot*, *start*, and *stop* for reading *.depend.boot* or *.depend.start* or *.depend.stop* respectively in the directory */etc/init.d/*. By scanning the boot and runlevel directories in */etc/rcX.d/* it then executes the appropriate scripts in parallel.

The **-e** option allows the user to set the location of the system's etc configuration directory. The default is to use /etc. Using -e we can use alternative locations such as /usr/local/etc.

The  **-f** option causes startpar to copy standard input (stdin) to standard output (stdout) until startpar reaches the end of input or the process is killed. When -f is used no programs are started and other parameters on the command line are ignored. This option is only kept for legacy purposes.

## FILES

*/etc/init.d/.depend.boot*\
 */etc/init.d/.depend.start*\
 */etc/init.d/.depend.stop*

## SEE ALSO

[**init**(8)](/init/8.md) [**insserv**(8)](/insserv/8.md).

## COPYRIGHT

2003,2004 SuSE Linux AG, Nuernberg, Germany.\
 2007 SuSE LINUX Products GmbH, Nuernberg, Germany.\
 2018 Jesse Smith

## AUTHOR

Michael Schroeder \<mls@suse.de\>\
 Takashi Iwai \<tiwai@suse.de\>\
 Werner Fink \<werner@suse.de\>
