Boinc Client ohne Manager starten

LordNord

Redaktion
☆☆☆☆☆☆
Mitglied seit
07.09.2005
Beiträge
5.865
Renomée
528
Standort
S-H
  • Docking@Home
  • BOINC Pentathlon 2011
  • BOINC Pentathlon 2012
  • BOINC Pentathlon 2013
  • BOINC Pentathlon 2014
  • BOINC Pentathlon 2015
  • BOINC Pentathlon 2016
  • BOINC Pentathlon 2019
  • BOINC Pentathlon 2018
Hallo,

habe mal wieder was ganz tolles:

Ich hab einen PC auf dem Boinc laufen soll, ohne dass der Boincmanager startet.
Sprich nur der Client.
Das ist aber noch nicht alles:
1. Wenn man die boinc.exe ausführt kommt eine CMD, das ist schon zuviel.
2. Wenn ich Boinc als Service laufen lasse, habe ich zwar den Client ohne den Manger am laufen,
aber dann bekomme ich keine Rechte auf die GPU.

Kann man die Boinc.exe irgendwie ohne CMD-fenster starten?


Danke schon mal.
 
Naja von CLI also Eingabeaufforderung musst du schon starten, oder eine Batch Datei anlegen. Und die Boinc.exe im Hintergrund starten: Pfad-zur-boinc.exe &
(Hab ewig keine Win NT CMD offen gehabt, ist das da auch das "&"?).
Das Beenden ist dann aber nicht so einfach, nur anhand der Prozess-ID.
 
Boinc konfigurieren, das es beim Systemstart automatisch mit startet. Dann läuft nur der Client, aber man bekommt es m.M.n. nicht, mit das es schon läuft. Oder musst Du den Client aus dem laufenden Betrieb starten?
 
Kein Problem heizzr, aber dann startet der Manager mit.
Oder reicht wenn man den Manager wieder manuell aus dem Autostart entfernt?
Wird dann immernoch der Client gestartet?
 
Im BM unter: Optionen>Sonstige einstellungen>Manager bei anmeldung starten.

Zumindest wird das Managerfenster nicht geöffnet, man sieht es nur als tray icon.
 
Ja schon klar, es soll aber kein Manager laufen, damit nichts einfach umgestellt werden kann.
Wahrscheinlich bleibt mir nur der Service, dann muss ich halt auf die GPU verzichten. :(
 
Da auch ich den Wunsch habe, Boinc direkt nach dem Booten zu starten, inklusive GPU- und VM-Rechte, habe ich einige Tests gemacht und eine Lösung gefunden.
Erstmal zum Problem mit der Boinc-Console:
Es gibt einen Startparameter (boinc.berkeley.edu/wiki/Client_configuration) der die Konsole ausblendet:

"C:\Program Files\BOINC\boinc.exe" --detach_console

Diesen Befehl als Aktion in eine Aufgabe packen (Task Sheduler/Aufgabenplanung) und schon läuft Boinc unsichtbar gleich nach dem Hochfahren.
fop3n_boot1.PNG

Da der Account aber ohne Anmeldung von Windows mit anderen/weniger Rechten versehen ist, klappt ja der Zugriff auf die GPU und auch VM-Tasks nicht, z.B. für Projekt ATLAS oder VirtualLHC.
Da gibt es eine Lösung: Das Konto ohne Passwort versehen, damit Windows sich sofort anmeldet. Das ist aber ein Sicherheitsriskio. Deshalb gehe ich folgendermaßen vor:

  • Per Skript fahre ich den PC herunter und entferne vorher mein Kennwort.
  • Beim Booten wiederum starte ich dann zwei Aufgaben. Die eine startet den Boinc-Job. Die andere ein Skript, dass das Kennwort wieder setzt und den Bildschirm sperrt.
Damit steht zwar das Passwort in der Aufgabe oder in einer Datei, aber dem Ordner kann man evtl. weniger Rechte geben. Oder der Befehl wird in ein VBScript verpackt, dass wiederum das Passwort von woanders ausliest. Eine sichere Lösung habe ich da noch nicht, bin da nicht so fit.

Hier meine Skripts im Detail. Die Skripte und/oder Aufgaben müssen mit Adminrechten gestartet werden bzw. in der Aufgabenplanung ist die Option "Mit höchsten Privilegien ausführen" zu aktivieren. Auch "Nur ausführen, wenn der Benutzer angemeldet ist" muss aktiviert sein, damit Boinc nicht zu früh startet:

1. Shutdown:
Aufgabe erstellen oder alles in ein Batchjob schreiben. Enthält zwei Aktionen, startet zwei Programme:

- C:\Scripte\pwleer.bat
- shutdown -s -t 30 -c "geplanter Shutdown"
fop3n_shutd.PNG
In der .bat steht u.a.:
@echo off
rem *** Start bei Shutdown aus Task Scheduler ***
echo net user %time:~0,5% - Shutdown - >>C:\Scripte\logtime.log
net user MyUser "" >>C:\Scripte\logtime.log
C:\Tools\sleep.exe 5​
Hinweise dazu:
Es reicht der net user Befehl. Dieser könnte auch direkt in die Aufgabe geschrieben werden, anstatt eine .bat. Ist dort auch relativ sicher vor Zugriffen.
Ich möchte hier nur die Sache dokumentieren. Ganz unsichtbar ist es aber nicht, es poppt kurz auf. Besser wäre es, ein VB-Skript zu starten und von dort die .bat, z.B. mit:
WshShell.Run "C:\Scripte\pwleer.bat " ,0,True. Das wäre dann komplett unsichtbar.

2. PC Hochfahren.
Ich starte zwei Aufgaben aus der Aufgabenplanung:
  • Die eine mit dem Trigger "Beim Start" und obigen Optionen sowie mit "Verzögern" um 3 Minuten. Dort wird die boinc.exe gestartet, siehe erstes Bild.
    Die 3 Minuten sind nur dafür, damit die GPU sich etwas vorwärmt bzw. ich sicher bin, das die Kontoanmeldung durch ist.
  • Die zweite Aufgabe setzt das Passwort und sperrt den Bildschirm. Auch das mache ich mit einem Batch, aber es reicht auch die beiden Befehle in die Aufgabe zu schreiben:
    - net user MyUser passw
    - rundll32.exe user32.dll,LockWorkStation

    Hier verwendet ich den Trigger: "Bei Anmeldung", d.h. erst wenn der PC den User anmeldet, was ja ohne Passwort sofort passiert, wird das Passwort gesetzt.
fop3n_boot.PNG
 
Noch ein Tipp:
Auch hier poppt beim Starten der "boinc.exe --detach_console" - aus dem Task Scheduler - kurz ein DOS-Fenster auf.
Wer das nicht will, kann dies mit dem Tool: CMDOW.EXE (commandline.co.uk/cmdow) bis auf ein sehr kurzes Zucken unterbinden. Das Tool erlaubt vielfältige Fenstermanipulationen.

Aufruf (mit Adminrechten!):

cmdow.exe /RUN /HID "C:\Program Files\BOINC\boinc.exe"

Dann ist auch das „--detach_console“ nicht nötig. Bei Bedarf könnte man die Console auch wieder sichtbar machen:

D:\Tools> cmdow *boinc*
Handle Lev Pid -Window status- Image Caption
0x0E0CC4 1 9848 Res Ina Ena Hid boinc BOINC Monitor System (Power)
0x070D7A 1 9848 Res Ina Ena Hid boinc C:\Program Files\BOINC\boinc.exe <-- das ist die Console
0x0403A6 1 7788 Res Ina Ena Hid boinctra BOINC System Tray Applet

D:\Tools> cmdow *boinc.exe* /VIS
 
Ich habe es gelöst indem ich BOINC als Service installiert habe. Damit funktioniert allerdings keine GPU-Berechnung.
 
Zurück
Oben Unten