Gibt es eine Möglichkeit, Prozesse in Windows im Hintergrund laufen zu lassen? Nohup-Äquivalent für Windows

Gibt es eine Möglichkeit, Prozesse in Windows im Hintergrund laufen zu lassen? Nohup-Äquivalent für Windows

nohup führt einen Prozess im Hintergrund aus. Gibt es ein Äquivalent für Windows?

Antwort1

Mit dem Startbefehl können Sie einen Prozess im Hintergrund des Befehlsfensters ausführen.

command1
command2
start command3
command4

Befehl2 wartet, bis Befehl1 fertig ist, aber Befehl4 wartet nicht, bis Befehl3 fertig ist.

und wenn Sie unabhängig vom angemeldeten Benutzer laufen müssen, müssen Sie den Prozess als Dienst starten und Sie können verwendenanysrv.exe

Antwort2

Vielleicht möchten Sie sich die Windows-Dienste ansehen. Es gibt einige Tools, die Sie herunterladen können, um jeden Prozess als Windows-Dienst zu hosten. Dadurch wird der Prozess beim Windows-Start im Hintergrund geladen. Sofern er also keine Benutzerinteraktion erfordert, sollten Sie ihn auf diese Weise hosten können.

Windows Server 2003 Resource Kit

Das gesuchte Tool heißt srvany.exe.

Antwort3

Die einzige Möglichkeit, in Windows einen von einem Benutzer gestarteten Prozess nach der Abmeldung weiterlaufen zu lassen (was „nohup“ tut), besteht darin, ihn entweder über eine „geplante Aufgabe“ oder als Windows-Dienst zu starten. Wenn sich der Benutzer abmeldet, werden alle Prozesse in seiner Anmeldesitzung beendet.

Wenn Sie die Methode „Geplante Aufgaben“ ausprobieren möchten, möchten Sie wissen, wie Sie diese programmgesteuert erstellen.Win32_ScheduledJobDies kann eine WMI-Klasse. Eine ausführliche Dokumentation finden Sie hier:http://www.microsoft.com/technet/scriptcenter/guide/sas_man_rsxs.mspx?mfr=true Im Grunde genommen möchten Sie Folgendes tun (schamlos von Microsoft geklaut):

Set objService = GetObject("winmgmts:\\.")
Set objNewJob = objService.Get("Win32_ScheduledJob")
errJobCreated = objNewJob.Create("Program-to-execute.exe", "ugly-formatted-time-string-per-Microsoft-docs",True ,1 OR 4 OR 16, , ,JobID)
If Err.Number = 0 Then
 Wscript.Echo "New Job ID: " & JobID
Else
 Wscript.Echo "An error occurred: " & errJobCreated
End If

Um „Joe User“ die Möglichkeit zu geben, geplante Aufgaben zu erstellen, müssen Sie die Berechtigung für den Ordner %SystemRoot%\Tasks ändern. Hier finden Sie einige Informationen dazu:http://technet.microsoft.com/en-us/library/cc785125(WS.10).aspx

Antwort4

Dies hängt alles von Ihrem endgültigen Zweck ab. Sie können eine geplante Aufgabe ausführen und die Option DEAKTIVIERT einstellen, dass sie nur ausgeführt wird, wenn der Benutzer angemeldet ist. Sie können psexec möglicherweise von einem Remotecomputer aus verwenden. Noch besser wäre es, den Prozess als Dienst auszuführen. Schauen Sie sich andiese Google-Suche,diese andere Google-Suche,dieser Thread, Unddieser andere Threadfür einige mögliche Hinweise bei Ihrer Suche nach einer Lösung. Letztendlich scheint es keinegenauentspricht nohup auf einem Windows-Computer.

verwandte Informationen