nohup führt einen Prozess im Hintergrund aus. Gibt es ein Äquivalent für Windows?
windows
background-process
nohup
Jader Dias
quelle
quelle
START
weiß , führt der Befehl keine Trennung durch, dh er ist immer noch ein untergeordnetes Element des Prozesses, der ihn erstellt hat. In Ihrem Beispiel bedeutet dies, dass 'command3' stirbt, wenn der Mutterprozess beendet wird. Unix umgeht dies, indem es als "Gabel-zweimal" bezeichnet wird, aber ich kenne kein Äquivalent in Windows.exec(<some windows executable>)
. Ich kann im Process Explorer deutlich die Eltern-Kind-Beziehung erkennen und alles, was ich von innen beginne,exec()
überlebt nicht. Korrigieren Sie, dass es zu funktionieren scheint, wenn ich eincmd.exe
Startmenü starte, in dem der gestartete Prozess beim Beenden "korrekt" verwaist zu sein scheintcmd.exe
. Klar muss ich das besser verstehen. :-(Vielleicht möchten Sie sich Windows-Dienste ansehen. Es gibt einige Tools, die Sie herunterladen können, um einen beliebigen Prozess als Windows-Dienst zu hosten. Dies führt dazu, dass der Prozess beim Start von Windows im Hintergrund geladen wird. Sofern keine Benutzerinteraktion erforderlich ist, sollten Sie ihn so hosten können.
Windows Server 2003 Resource Kit
Das Tool, nach dem Sie suchen, heißt srvany.exe.
quelle
Die einzige Möglichkeit in Windows, einen Prozess von einem Benutzer starten zu lassen, der nach dem Abmelden weiter ausgeführt wird (dh 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 sie programmgesteuert erstellen. Die WMI-Klasse Win32_ScheduledJob kann dies tun. Die Dokumentation finden Sie hier im Detail: http://www.microsoft.com/technet/scriptcenter/guide/sas_man_rsxs.mspx?mfr=true Grundsätzlich möchten Sie Folgendes tun (schamlos von Microsoft gestohlen):
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 zu diesem Thema: http://technet.microsoft.com/en-us/library/cc785125(WS.10).aspx
quelle
Dies alles hängt davon ab, was Ihr letztendlicher Zweck ist. Sie können eine geplante Aufgabe mit der Option ausführen, die nur ausgeführt werden soll, wenn der Benutzer auf Deaktiviert eingestellt ist. Sie könnten möglicherweise psexec von einem entfernten Computer aus verwenden. Besser noch könnte es sein, den Prozess als Service auszuführen. Überprüfen Sie diese Google-Suche , diese andere Google-Suche , diesen Thread und diesen anderen Thread auf mögliche Hinweise bei Ihrer Suche nach einer Lösung. Letztendlich scheint es auf einem Windows-Computer kein genaues Äquivalent zu nohup zu geben.
quelle