Dit is de commandogroep 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
kudde - beheer vergrendelingen vanuit shell-scripts
KORTE INHOUD
kudde [Opties] filet|directory commando [argumenten]
kudde [Opties] filet|directory -c commando
kudde [Opties] aantal
PRODUCTBESCHRIJVING
Dit hulpprogramma beheert kudde(2) vergrendelt vanuit shell-scripts of vanaf de opdrachtregel.
De eerste en tweede van de bovenstaande formulieren wikkelen het slot rond de uitvoering van a commando,
op een manier die vergelijkbaar is met su(1) of nieuwgrp(1). Ze vergrendelen een opgegeven filet or directory, welke
wordt gemaakt (ervan uitgaande dat de juiste machtigingen beschikbaar zijn) als deze nog niet bestaat. Standaard,
als het slot niet onmiddellijk kan worden verkregen, kudde wacht totdat het slot beschikbaar is.
Het derde formulier gebruikt een open bestand via de bestandsdescriptor aantal. Zie de voorbeelden hieronder
voor hoe je dat kunt gebruiken.
OPTIES
-c, --opdracht commando
Geef een single door commando, zonder argumenten, naar de shell met -c.
-E, --conflict-exit-code aantal
De exitcode die wordt gebruikt wanneer de -n optie in gebruik is en het conflicterende slot bestaat,
of de -w optie in gebruik is en de time-out is bereikt. De standaardwaarde is 1.
-e, -x, --exclusief
Zorg voor een exclusieve vergrendeling, ook wel schrijfvergrendeling genoemd. Dit is de standaardinstelling.
-n, --nb, --niet-geblokkeerd
Mislukt in plaats van te wachten als het slot niet onmiddellijk kan worden verkregen. Zie de -E
optie voor de gebruikte exitcode.
-o, --dichtbij
Sluit de bestandsdescriptor waarop de vergrendeling wordt vastgehouden voordat deze wordt uitgevoerd commando. Deze
is handig als commando brengt een kindproces voort dat het slot niet zou moeten vasthouden.
-s, --gedeeld
Zorg voor een gedeelde vergrendeling, ook wel een leesvergrendeling genoemd.
-u, --ontgrendelen
Laat een slot vallen. Dit is meestal niet nodig, omdat een slot automatisch wordt verwijderd
wanneer het bestand wordt gesloten. In bijzondere gevallen kan dit echter wel nodig zijn
als de bijgevoegde commandogroep mogelijk een achtergrondproces heeft gevorkt, wat niet het geval zou moeten zijn
het slot vasthouden.
-w, --wacht, --time-out seconden
Mislukt als het slot niet binnen kan worden verkregen seconden. Decimale fractionele waarden zijn
toegestaan. Zie de -E optie voor de gebruikte exitcode. Het nulgetal van seconden is
geïnterpreteerd als --niet-geblokkeerd.
--uitgebreid
Vermeld hoe lang het duurde om het slot te verkrijgen, of waarom het slot niet kon worden verkregen.
-V, --versie
Versie-informatie weergeven en afsluiten.
-h, --help
Help-tekst weergeven en afsluiten.
Voorbeelden
shell1> kudde / tmp -c kat
shell2> kudde -w .007 / tmp -c echo; /bin/echo $?
Stel een exclusieve vergrendeling voor de map in / tmp en het tweede commando zal mislukken.
shell1> kudde -s / tmp -c kat
shell2> kudde -s -w .007 / tmp -c echo; /bin/echo $?
Stel gedeelde vergrendeling in op map / tmp en het tweede commando zal niet mislukken. Kennisgeving
dat een poging om exclusieve vergrendeling te krijgen met een tweede commando zou mislukken.
shell> kudde -x lokaal-lock-bestand echo 'abc'
Pak het exclusieve slot "local-lock-file" voordat u echo uitvoert met 'ab c'.
(
kudde -n 9 || uitgang 1
# ... commando's uitgevoerd onder slot ...
) 9>/var/lock/mijnlockbestand
Het formulier is handig in shell-scripts. De modus die wordt gebruikt om het bestand te openen
maakt niet uit kudde; gebruik makend van > or >> staat toe dat het lockfile wordt aangemaakt als dit het geval is
bestaat nog niet, maar schrijftoestemming is vereist. Gebruik makend van < vereist dat
het bestand bestaat al, maar er is alleen leesrechten vereist.
[ "${FLOCKER}" != "$0" ] && exec env FLOCKER="$0" kudde -en "$0" "$0" "$@" || :
Dit is nuttige standaardcode voor shellscripts. Plaats het bovenaan de schaal
script dat u wilt vergrendelen en het vergrendelt zichzelf automatisch bij de eerste keer dat het wordt uitgevoerd. Als
de env var $FLOCKER is niet ingesteld op het shellscript dat wordt uitgevoerd en voer het vervolgens uit
Flock en pak een exclusief niet-blokkerend slot (gebruik het script zelf als slot
bestand) voordat het zichzelf opnieuw uitvoert met de juiste argumenten. Het stelt ook de FLOCKER in
env var naar de juiste waarde zodat deze niet opnieuw wordt uitgevoerd.
EXIT STATUS
Het commando gebruikt sysexits.h retourneert waarden voor alles, behalve wanneer u een van de
opties -n or -w die melden dat het slot niet is verkregen met een retourwaarde gegeven door
the -E optie, of standaard 1.
Bij gebruik van het commando variant, en het uitvoeren van het kind werkte, dan is de exit-status
die van het kindercommando.
Gebruik Flock Online met behulp van onworks.net-services
