Linux: Jak przekazać parametry do `service foo start` (w wierszu poleceń)?

11

Chciałbym przekazać argument do usługi, którą uruchamiam. Np. Uruchomienie serwera w trybie debugowania. Lubić,

service jboss-as start debug

Lub takie. Ale servicewydaje się tego nie potwierdzać.

Czy jest jakiś sposób? (Jeśli ma to znaczenie dla RHEL 6).

Uwaga: Jest to podobne do Ubuntu / Linux: w jaki sposób parametry uruchamiania są zazwyczaj definiowane dla skryptów uruchamiania (sysvinit)? ale nie to samo.

Ondra Žižka
źródło
Stop, ubuntu nie używa sysv, używa upstart.
PersianGulf
1
Utwórz inną sprawę w skrypcie uruchamiania. Przykład: start-debuga następnie możesz uruchomić:/etc/init.d/jboss-as start-debug
Guntis

Odpowiedzi:

10

W RHEL masz folder / etc / sysconfig. Tutaj definiujesz parametry uruchamiania. A w skrypcie startowym podajesz coś takiego:

if [ -f /etc/sysconfig/$prog ] ; then
    . /etc/sysconfig/$prog
fi

Sprawdź istniejące usługi w celu uzyskania przykładów.

W celu programowania możesz umieścić parametry uruchamiania w eksportowanej zmiennej (na przykład .bashrc), którą możesz ręcznie zastąpić w dowolnym momencie.

EDYTOWAĆ

Jeśli naprawdę chcesz użyć, serviceistnieją inne opcje.

Twój skrypt powinien obsługiwać co najmniej starti stop. Ale możesz także zaimplementować debugpolecenie. I rozpocznij swój program z:

service foo debug

Innym sposobem będzie sprawdzenie drugiego argumentu w skrypcie i uruchomienie programu za pomocą:

service foo start debug

Zmodyfikuj skrypt inicjujący na:

case "$1" in
  start)
        if [ "$2" = "debug" ]
        then
                start_debug
        else
                start
        fi
        ;;
Laurentiu Roescu
źródło
1
Jeśli chodzi o wyeksportowane zmienne środowiskowe, wydaje się, że tak nie jest - strona podręcznika serwisu mówi, że TERM i LANG są jedynymi, które są przekazywane do skryptu. Ale oczywiście zawsze można ominąć usługę, uruchamiając /etc/init.d/MyNiftyService uruchom cokolwiek1 cokolwiek2 ...
Alien Life Form
Będę uciekać się do obwodnicy Obcego. Chcesz to ująć jako odpowiedź?
Ondra Žižka
5

W Ubuntu parametry uruchamiania zwykle znajdują się w:

/etc/default/<service_name>
EEAA
źródło
2
Racja, ale nie chcę tego zmieniać za każdym razem, gdy potrzebuję zmiany ... Podczas rozwoju jest to dość często. Potrzebuję RHEL 6. Zredagowałem pytanie.
Ondra Žižka
0

Po sprawdzeniu jego istnienia zacząłem pozyskiwać dodatkowe parametry z pliku specyficznego dla systemu, jak zasugerowano powyżej.

Nie lubię dodawać żadnych dodatkowych opcji do uruchamiania usługi.

Amar
źródło