Dit is de opdracht cook_rsh die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator
PROGRAMMA:
NAAM
cook - taakverdeling rsh
KORTE INHOUD
koken [ optie...] architectuur commando [ argument...]
koken -Helpen
PRODUCTBESCHRIJVING
De koken programma is een omhulsel rsh(1) die eenvoudige taakverdeling uitvoert. Het verkrijgt
de laadinformatie door het uitvoeren van de roep(1) commando, en selecteert de meest geschikte host
hased op de architectuur die u specificeert, en de minste belasting van alle hosts daarvan
architectuur.
Het eerste opdrachtregelargument is de architectuurnaam die wordt gebruikt om de lijst op te halen
mogelijke gastheren. Uit die lijst de roep(1) Er wordt een opdracht uitgevoerd om de host te bepalen met de
laagste belasting, die op zijn beurt wordt gebruikt als het eerste argument van de uiteindelijke belasting rsh(1) opdracht.
KOOKBOEKEN
Om van dit programma gebruik te kunnen maken, moet je ergens in je kookboek een regel toevoegen
die leest
parallel_rsh = "koken";
Als de gekozen host dezelfde is als de beller (build host), dan voert dit programma gewoon het
commando waarbij de rsh wordt overgeslagen. Het kost dus niets om dit in een netwerk van één machine te gebruiken!
Voor elk recept dat u naar een externe host wilt distribueren, moet u een hostbinding toevoegen
toeschrijven aan. Typisch gebruik is waar u een muti-architectuur-build hebt.
%1/%0%.o: %0%.c
hostbinding %1 {
cc -o [doel] -c [%0%.c oplossen]; }
In het hier gegeven recept zijn de objectbestanden van elke architectuur in een apart bestand geplaatst
architectuurspecifieke directorystructuur. De architectuurnaam (%1) wordt gebruikt in de host-
binding, zodat de compilers in taakverdeling kunnen worden gebracht voor alle machines met die architectuur.
Als je een opdracht nodig hebt om op een specifieke host te draaien (bijvoorbeeld omdat daar een specifiek
applicatielicentie zich bevindt), gebruik dan eenvoudigweg de hostnaam in de hostbinding
attribuut, in plaats van een architectuurnaam.
DEFINIREN HET KLASSEN
De /host_lists.pl Er wordt verwacht dat het bestand bestaat en de gebruikte variabeledefinities bevat
bepalen of hosts lid zijn van bepaalde architecturen.
De /host_lists.pl bestand definieert een perl HOL "hash van lijsten" De hash is% ArchNames en it
brengt namen van architecturen in kaart zoals de gebruiker ze wil zien, om referenties als de werkelijke weer te geven
lijsten worden opgeslagen.
De namen van elke architectuur kunnen elke gewenste vorm hebben, maar de conventie is om te gebruiken
de GNU-achtige namen zoals "sparc-sun-solaris2.8".
Definieer voor elke architectuur een of meer lijsten met machines, afhankelijk van welke functie
elke machineset kan het doen. Dit kan zo eenvoudig of zo uitgebreid zijn als nodig is. De vorm van
de naam van de lijstvariabele kan elke geldige perl-identifier zijn, maar kan net zo goed lijken op de
architectuurnaam met streepje veranderd in onderstrepingsteken en punt verwijderd, en het type toegevoegd. Voor
men zou bijvoorbeeld solaris-gastheren kunnen definiëren als:
@sparc_sun_solaris28_hosts = (
"mickey", "minny", "dagobert");
En Linux-hosts als:
@i386_linux22_hosts = (
"gek", "scrooge");
Als het nodig is om verschillende sets machines te definiëren voor verschillende soorten taken, dan is dat het geval
voeg een achtervoegsel toe aan de namen in de host-binding richtlijn voor elk van de recepten, en
wordt hier vermeld met hetzelfde achtervoegsel.
De hash om argumentnamen aan lijsten toe te wijzen, wordt als volgt gedefinieerd:
%ArchNames = (
"sparc-solaris2.8", => @sparc_solaris28_hosts,
"i586-onbekend-linux22", => @i386_linux22_hosts, );
Natuurlijk als gebruikers verschillende meningen hebben over hoe de architectuurnamen eruit moeten zien
U kunt bijvoorbeeld ook "alias"-toewijzingen definiëren.
"sun4-SunOS-5.8", => @sparc_solaris28_hosts,
Of misschien is het niveau niet van belang, definieer het dan
"sparc-solaris", => @sparc_solaris28_hosts,
"sparc-solaris2.7", => @sparc_solaris28_hosts,
Deze lijst mag ook niet leeg zijn.
En tot slot, met dank aan Perl, moet de laatste regel van het bestand worden gelezen
1; om duistere en magische redenen.
SYSLOG LOGGEN
Typische commando's die je tijdens een build ziet, zien er als volgt uit
sh -c 'cd /aegis/dd/gumby2.2.C079 && \ sh -ce /aegis/dd/gumby2.2.C079/.6.1; \
echo $? > /aegis/dd/gumby2.2.C079/.6.2'
We kunnen het project/de wijziging dus vrij eenvoudig uit de opdracht halen en via loggen
syslog zou een triviale toevoeging zijn.
OPTIES
Dit commando krijgt normaal gesproken geen opties.
-h Help - toon gebruiksinformatie
-vP Uitgebreid - rapportkeuze
-Tn Traceerwaarde voor testen
Gebruik cook_rsh online met behulp van onworks.net-services