bitcoind daemon-modus

  1. Bij het uitvoeren van bitcoind vanaf een systemd-service, zoals in https://github.com/bitcoin/bitcoin/blob/master/contrib/init/bitcoind.service , wat is de rol van de -daemon-vlag?

In feite vraag ik wat -daemon doet in een situatie waarin bitcoind draaien als service en niet als portemonnee. En wat gebeurt er als -daemon niet wordt gebruikt -> in een systemd servicebestand.

  1. Als men daemon = 1 instelt in bitcoin .conf, is het overbodig om ook de vlag -daemon te gebruiken bij het starten

Answer

Als bitcoind wordt uitgevoerd vanaf een systemd-service, zoals in https://github.com/bitcoin/bitcoin/blob/master/contrib/init/bitcoind.service , wat is de rol van de -daemon vlag?

-daemon start bitcoind op de achtergrond als een daemon. Dus als je voer bitcoind -daemon uit in de terminal, het programma zal onmiddellijk afsluiten, maar Bitcoind draait nog steeds op de achtergrond. Zonder -daemon, zul je zien dat bitcoind in de terminal lijkt te hangen, maar dat betekent gewoon dat het draait. Als je het commando stopt, zal bitcoind ook stoppen.

Als men daemon = 1 instelt in bitcoin.conf, is het overbodig om ook de -daemon vlag bij starten

Ja. Dit geldt voor alle opdrachtregelopties.

Opmerkingen

  • Ja, ik zie dat de terminal ' bezet ' of ' hangend ' wanneer de daemon-instelling is uitgeschakeld. Maar mijn vraag ging niet over het starten van de daemon in terminal, maar in een systemd-service. Wat is in dit geval de consequentie van het uitvoeren met de daemon-instelling ingeschakeld, of in plaats daarvan Type = simple en geen daemon doet het werk ook correct?
  • Zoals ik in je andere vraag hierover heb uitgelegd, kun je niet gebruik Type = simple zonder -daemon. Systemd zal daar niet mee werken.
  • In de andere vraag over forking vs simple, heb je een argument tegen het gebruik van Type = simple samen met daemon = 1 gemaakt. In mijn opmerking hierboven vroeg ik om Type = simple samen met daemon = 0.
  • Ik begrijp het. Er is geen verschil tussen het gebruik van Type = simple en daemon = 0 en het gebruik van Type = forking en daemon = 1.
  • Uit mijn ervaring Type=simple en daemon=1 in btc conf-bestand, maakt daemon neergeschoten net na het starten met systemctl start

Antwoord

Ik denk dat het hier nuttig zou zijn om de hiërarchie van hoe software werkt te begrijpen. Je communiceert met de software, Bitcoin Core. Terwijl je een GUI-portemonnee en netwerkstatistieken ervaart of interactie hebt met de bitcoin-cli, ervaart je besturingssysteem bitcoind, de bitcoin daemon. Het is – in het kader van dit scenario – het fundamentele onderdeel van uw bitcoin-knooppunt of portemonnee.

Wikipedia introduceert Daemons op een mooie manier:

een daemon (/ ˈdiːmən / of / ˈdeɪmən /) [1] is een computerprogramma dat als een achtergrondproces wordt uitgevoerd, in plaats van onder directe controle te staan van een interactieve gebruiker

Spookachtig. Specifiek op Unix-systemen is het een daemon als

het proces wordt gestart vanaf de opdrachtregel of van een opstartscript zoals een init-script

Het init-script is in dit geval de bitcoin. conf-bestand. Als het de daemon initieert, doet het zijn ding dat op de achtergrond wordt uitgevoerd. Alle kernprocessen die nodig zijn om de onderliggende code uit te voeren en voor een GUI en een opdrachtregel die daarboven moet worden gebruikt, zijn in stilte actief. / p>

Elke interactie die je hebt met de software vereist dat de daemon draait. Als dat nog niet het geval is, zal hij hem starten. Eenmaal uitgevoerd, kunt u het bitcoin.conf-bestand of de variabelen dynamisch wijzigen via de opdrachtregel tijdens uw sessie.

Wanneer u klaar bent, in welke staat het bitcoin.conf-bestand zich ook bevindt wanneer het begin van de computer of daemon zal het gedrag bepalen.

Als je wilt dat bitcoin altijd op de achtergrond draait, zorg er dan voor dat het configuratiebestand de daemon start bij het opstarten of dat je het zelf start als dat niet het geval is. wordt uitgevoerd. Het is overbodig om beide te doen.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *