History log of /freebsd-current/usr.sbin/service/service.sh
Revision Date Author Comments
# d0b2dbfa 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line sh pattern

Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/


# 194e059b 30-Nov-2022 Alexander Leidinger <netchild@FreeBSD.org>

service: Add -E option to set environment variables before starting a service.

This allows for quicker testing/debugging of rc scripts and is a pre-req
for automatic service jails.

Differential Revision: https://reviews.freebsd.org/D40369
Reviewed by: se


# 4d846d26 10-May-2023 Warner Losh <imp@FreeBSD.org>

spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD

The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch
up to that fact and revert to their recommended match of BSD-2-Clause.

Discussed with: pfg
MFC After: 3 days
Sponsored by: Netflix


# 55deb0a5 02-Mar-2021 Andrew Gierth <andrew@tao146.riddles.org.uk>

service(8): use an environment more consistent with init(8)

init(8) sets the "daemon" login class without specifying a pw
entry (so no substitutions are done on the variables). service(8)'s
use of env -L had the effect of specifying root's pw entry, with two
effects: getpwnam and getpwuid are being called, which may not be
entirely safe depending on what nsswitch is up to and what stage of
boot we are at, and substitutions would have been done.

Fix by teaching env(8) to allow -L -/classname to set the class
environment with no pw entry at all specified, and use it in
service(8).

PR: 253959


# 05b267e2 01-Mar-2021 Mariusz Zaborski <oshogbo@FreeBSD.org>

service: respect nojailvnet keyword

In the 761d2bb5b9e70cf30f9c2dac62a47a2d2593e83f we added nojailvnet
keyword. The nojailvnet keyword is used to skip startup scripts in
jails that are run without VNET.

The service.sh was omitted in this commit. The service.sh
even documents that this is the same code as in rc - so lets reflect
that.

Submitted by: Adam Wołk <a.wolk@fudosecurity.com>
Sponsored by: Fudo Security


# 736a5a6d 04-Feb-2020 Kyle Evans <kevans@FreeBSD.org>

service(8): set the environment of the "daemon" class before invoking

As mentioned in r357562, this gives the user a single place to configure
environment variables that need to be used for various services -- the
"daemon" class -- for, e.g., configuring a system-wide HTTP proxy.

This is a part of D21481.

Submitted by: Andrew Gierth <andrew_tao173.riddles.org.uk>


# 371ba7ec 13-Jun-2018 Warner Losh <imp@FreeBSD.org>

Use "$@" instead of $* to cope with parameters that have spaces in
them. "$@" preserves the args with spaces properly.

Differential Revision: https://reviews.freebsd.org/D15784


# d5b15ddb 21-Jan-2018 Kyle Evans <kevans@FreeBSD.org>

usr.sbin/service: Fix -j to not be order dependant

The introduced -j option is highly dependant on the ordering of arguments,
and it exhibited broken behavior in some other circumstances. Fix these
issues, and simplify the feature by removing the unneessary double parsing
of options.

Reviewed by: jilles
Differential Revision: https://reviews.freebsd.org/D13952


# a6f9024f 16-Jan-2018 Kyle Evans <kevans@FreeBSD.org>

service(8): Reset OPTIND properly now that we're parsing args twice

r328032 introduced a second round of argument parsing to proxy the request
through to a jail as needed, but failed to reset OPTIND before getting to
the second round of parsing to allow other flags to be set.

Reported by: Oleg Ginzburg <olevole olevole ru>


# 65136f65 15-Jan-2018 Kyle Evans <kevans@FreeBSD.org>

service(8): Add support for interfacing with services in jails

Provide a -j option that can take a jail name or id. If -j is specified,
check that the jail exists and proxy the service request through to
service(8) in the jail.

This allows for cleaner workflows when updating services in a jail, turning
the following:

pkg -j dns upgrade
jexec dns service named restart

into:

pkg -j dns upgrade
service -j dns named restart

PR: 223325
Submitted by: David O'Rourke (with slight changes)
MFC after: 2 weeks


# 1de7b4b8 27-Nov-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

various: general adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 2-Clause license, however the tool I
was using misidentified many licenses so this was mostly a manual - error
prone - task.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.

No functional change intended.


# 1289db48 08-Sep-2015 Allan Jude <allanjude@FreeBSD.org>

Add an additional check to service(8) -e incase rcvar is blank

Approved by: bapt (mentor)
X-MFC-With: 287576
Differential Revision: https://reviews.freebsd.org/D3604


# 32047ac5 08-Sep-2015 Allan Jude <allanjude@FreeBSD.org>

service(8) -e does not respect /etc/rc.conf.d/* entries

PR: 173454
Submitted by: giantlock@gmail.com (original patch)
Approved by: bapt (mentor)
MFC after: 1 week
Relnotes: yes
Sponsored by: ScaleEngine Inc.
Differential Revision: https://reviews.freebsd.org/D3600


# dab49686 16-Jul-2014 Devin Teske <dteske@FreeBSD.org>

Revert previous revision (r268461) for reasons documented in PR.
To use tmux in an rc.d script, use the new-session flag "-d".
To use screen in an rc.d script, use the "-dm" flag.
If you really need to launch an attached session, manually
export TERM=xterm (FreeBSD 9.0 or higher) or export TERM=cons25
for older releases.

Reported by: bdrewery
Discussed on: src-committers, svn-src-all, svn-src-head
PR: bin/191869


# 829dd7fb 14-Jul-2014 Devin Teske <dteske@FreeBSD.org>

Fix an issue with service(8) where utilities such as screen(1) and tmux(1)
would behave differently when utilizing rc-script was invoked manually vs.
service(8). The issue being that these utilities require the TERM environ
variable to be set and service(8) was not passing it down.

Reported by: Michael Dexter <editor@callfortesting.org>
PR: bin/191869
Reviewed by: allanjude
MFC after: 3 days
X-MFC-to: stable/10, stable/9


# 7627c244 14-Jun-2014 Xin LI <delphij@FreeBSD.org>

Fix two issues:

- Check for rc.d directory's existence before traversing
it;
- Don't output * when rc.d directory is empty.

PR: conf/190665
Submitted by: Oleg Ginzburg <olevole olevole ru> (with changes)
MFC after: 2 weeks


# 71ac3e32 14-Mar-2014 Eitan Adler <eadler@FreeBSD.org>

Be a little more verbose in service's error message

PR: bin/187118
Submitted by: culot


# f292f6dd 11-Dec-2012 Xin LI <delphij@FreeBSD.org>

Add -R, an option to restart all enabled "local" services.

Discussed on: -rc@ (in September)
MFC after: 2 months


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# fe0506d7 09-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Create the altix project branch. The altix project will add support
for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting
is a two-module system, consisting of a base compute module and a
CPU expansion module. SGI's NUMAFlex architecture can be an excellent
platform to test CPU affinity and NUMA-aware features in FreeBSD.


# ac4cfa6d 30-Dec-2009 Doug Barton <dougb@FreeBSD.org>

MFC r200743:

The service command is an easy interface to the rc.d system.
Its primary purpose is to start and stop services provided by
the rc.d scripts, however it can also be used to list the scripts
using various criteria.

MFC r200809, r200980, r201035, r201069, 201070:

Updates/fixes suggested after the initial introducition


# 81ef4483 27-Dec-2009 Doug Barton <dougb@FreeBSD.org>

Update the "-l or -r" usage to better conform to the standard

Submitted by: ed


# ee55fdb8 21-Dec-2009 Doug Barton <dougb@FreeBSD.org>

By popular request, execute rc.d scripts in the same environment
as they are at boot time.

Original concept submitted by: ume


# 3d482827 19-Dec-2009 Doug Barton <dougb@FreeBSD.org>

The service command is an easy interface to the rc.d system.
Its primary purpose is to start and stop services provided by
the rc.d scripts, however it can also be used to list the scripts
using various criteria.