pomóż mi zautomatyzować ten proces

6

Pochodzę ze środowiska uniksowego i muszę to zrobić w systemie Windows Server 2003.

Zasadniczo mam proces wiersza polecenia, który uruchamiam z systemu Windows cmd.exe. Chcę osiągnąć następujące cele:

  1. Uruchom ten proces domyślnie przy rozruchu systemu Windows, bez konieczności logowania się użytkownika, aby go uruchomić.

  2. Ikona pulpitu może ponownie uruchomić ten proces w tle (na wypadek awarii). Więc coś w stylu „ nohup mycommand &n” na * nix

hvgotcodes
źródło
Czy to komputer podłączony do domeny?
James Mertz
@kronos, loguję się przez zdalny pulpit za pośrednictwem mojej Mac Book Pro
hvgotcodes
Myślałem, że lepiej będzie w ServerFault, ale skoro nie wiesz, co to jest ... to nie ma takiej potrzeby :)
James Mertz
@ kronos, lol powinien mieć zastosowanie również tutaj, prawda?
hvgotcodes
1
Tak, jesteś dobry
James Mertz

Odpowiedzi:

7

Uruchamianie przy rozruchu

Zmień swój proces w usługę Windows za pomocą polecenia sc . Podstawowa składnia:

sc create NewServiceName binpath= c:\windows\system32\newserv.exe

Zwróć uwagę na miejsce po binpath=. Po utworzeniu usługi możesz skonfigurować ją tak, aby działała automatycznie jak każda inna usługa. Jeśli nie jesteś tego pewien, przejdź do menu Start i wybierz Run. Wejdź services.mscdo okna, które zostanie otwarte. Spowoduje to otwarcie przystawki usług w Microsoft Management Console. Odtąd powinieneś być w stanie znaleźć swoją usługę na liście (między innymi) i ustawić, aby uruchamiała się automatycznie za pomocą narzędzi GUI. Możesz również wykonać tę część swojego sc createpolecenia, ale dla początkującego prawdopodobnie łatwiej jest po prostu stworzyć tę cholerną rzecz, a następnie użyć narzędzi GUI, aby ustawić ją tak, jak chcesz.

Ostatnim zastrzeżeniem jest upewnienie się, że korzystasz z tego konta z odpowiednimi uprawnieniami. Konta usługi lub systemowe są najlepsze, ale czasem potrzebujesz czegoś innego.

Ponowne uruchamianie na żądanie

Mały plik wsadowy (* .bat) załatwi sprawę:

sc stop NewServiceName
sc start NewServiceName
Joel Coehoorn
źródło
Ładne wyjaśnienie!
BloodPhilia
@joel spróbuje tego dzięki
hvgotcodes
@joel - wreszcie się do tego przyzwyczaiłem. co jeśli polecenie, którego używam z wiersza polecenia, to „java -jar thewar.war”? czy to pójdzie w binpath z cytatami?
hvgotcodes
Myślę, że trzeba by zawinąć polecenie w plik .bat i użyć pliku .bat jako binpath
Joel Coehoorn
@joel, czy to tylko plik z .bat na końcu z jednym wierszem?
hvgotcodes
0

Wykonaj usługę z procesu, który działa w systemie lokalnym. Następnie utwórz skrypt partii na pulpicie, aby uruchomić i zatrzymać usługę.

EDYTOWAĆ:

Oto kilka linków:
Uruchamianie programu jako usługi
Zarządzanie usługami z wiersza poleceń
Tworzenie skryptu wsadowego

CamronBute
źródło
1
Nie sądzę, żeby OP wiedział, co masz na myśli, biorąc pod uwagę, że jest facetem * nix. Czy możesz wyjaśnić, jak to osiągnąć?
BloodPhilia
Nie sądzę, aby głosowanie było konieczne. Odpowiedź nie jest zła. Uznałem, że może to zrobić w Google i uzyskać bardziej wyczerpujące informacje, które mógłbym udzielić w tej odpowiedzi. Dodam linki w edycji ...
CamronBute
1
Celem Superużytkownika (w przeważającej części) jest przedstawienie kompletnego rozwiązania ... nie zawsze wskazówka, że ​​ktoś musi jeszcze przeprowadzić badania ...
James Mertz
2
Po prostu linkowanie dodaje zgniliznę linków do strony. Przeczytaj odpowiedź Joelsa, która jest poprawną, dobrze napisaną odpowiedzią: używał linków, ale tylko jako źródła po cytowaniu wspomnianych źródeł.
Supercereal,
@Kronos @Kyle Amen.
BloodPhilia
0

Na serwerze 2003 otwórz przystawkę Zasady komputera lokalnego w MMC. Rozwiń węzeł Konfiguracja komputera - Ustawienia systemu Windows, a następnie otwórz skrypty (uruchamianie / zamykanie) Otwórz program startowy i możesz tam dodać skrypt. Powinien być przechowywany w udziale sysvol.

Możesz także utworzyć skrót do tego skryptu na pulpicie

Dave M.
źródło