---
name: "service"
section: "8"
platform: "linux"
package: "init-system-helpers"
version: "1.69~deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/service"
---

# service(8)

run a System V init script

## NAME

service - run a System V init script

## SYNOPSIS

**service** *SCRIPT* *COMMAND* \[*OPTIONS*\]

**service** **--status-all**

**service** **--help** \| **-h** \| **--version**

## DESCRIPTION

**service** runs a System V init script or systemd unit in as predictable an environment as possible, removing most environment variables and with the current working directory set to **/**.

The *SCRIPT* parameter specifies a System V init script, located in */etc/init.d/SCRIPT*, or the name of a systemd unit. The existence of a systemd unit of the same name as a script in **/etc/init.d** will cause the unit to take precedence over the init.d script. The supported values of *COMMAND* depend on the invoked script. **service** passes *COMMAND*  and *OPTIONS* to the init script unmodified. For systemd units, start, stop, status, and reload are passed through to their systemctl/initctl equivalents.

All scripts should support at least the **start** and **stop** commands. As a special case, if *COMMAND* is **--full-restart**, the script is run twice, first with the **stop** command, then with the **start** command. Note, that unlike [**update-rc.d**(8)](/update-rc.d/8.md), **service** does not check **/usr/sbin/policy-rc.d**.

**service --status-all** runs all init scripts, in alphabetical order, with the **status** command. The status is \[ + \] for running services, \[ - \] for stopped services and \[ ? \] for services without a **status** command.  This option only calls status for sysvinit jobs.

## EXIT CODES

**service** calls the init script and returns the status returned by it.

## FILES

- **/etc/init.d**

  The directory containing System V init scripts.

- **/{lib,run,etc}/systemd/system**

  The directories containing systemd units.

## ENVIRONMENT

- **LANG, LANGUAGE, LC\_CTYPE, LC\_NUMERIC, LC\_TIME, LC\_COLLATE, LC\_MONETARY, LC\_MESSAGES, LC\_PAPER, LC\_NAME, LC\_ADDRESS, LC\_TELEPHONE, LC\_MEASUREMENT, LC\_IDENTIFICATION, LC\_ALL, TERM, PATH**

  The only environment variables passed to the init scripts.

## SEE ALSO

```
/etc/init.d/skeleton
update-rc.d(8)
init(8)
invoke-rc.d(8)
systemctl(1)
```

## AUTHOR

Miloslav Trmac \<mitr@redhat.com\>, Petter Reinholdtsen \<pere@hungry.com\>

License: GNU General Public License v2 (GPLv2)

## COPYRIGHT

2006 Red Hat, Inc.,  Petter Reinholdtsen \<pere@hungry.com\>
