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.