Cómo saber cuándo Bitcoin realmente ha dejado de funcionar

Me gustaría tomar los datos del bloque de bitcoin y enviarlos para evitar tener que pasar por la descarga de blockchain nuevamente en otras computadoras en mi red local. Para asegurarme de que no se dañe la base de datos, detengo bitcoin antes de la transferencia. Ejecutar el comando de Unix bitcoind stopdevolverá

Bitcoin has stopped running!

Me doy cuenta de que todavía se ejecuta en la parte superior durante unos momentos después de recibir este mensaje. Esto no es un problema, ya que nunca dura más de 15 segundos, sin embargo, estoy buscando automatizar este proceso usando un simple script php.

El uso de un comando bitcoin-rpc como el $status = $bitcoin->stop()que arrojaría un resultado de "Bitcoin ha dejado de ejecutarse", pero aún puede estar ejecutándose en la parte superior.

¿Cómo me aseguro de que Bitcoin realmente dejó de funcionar? ¿O es seguro realizar la transferencia de datos tan pronto como recibo este mensaje (Bitcoin sigue escribiendo en db después de notificarle que se detuvo)?

Siempre puede verificar la ID del proceso si está terminado o no. O simplemente espera 15 segundos. El hecho de que todavía se ejecute topdurante un par de segundos probablemente se deba a la finalización de la base de datos, la liberación de toda la memoria y demás. Creo que es mejor poner un sleep(15)(o 30, por razones de seguridad) y luego programarlo y hacer que cada milisegundo cuente.
¿Hay alguna manera de verificar efectivamente? Sé que puedo esperar y probablemente funcionará, pero ¿qué pasa si bitcoind se queda atascado haciendo algo? (Podría estar atascado debido a otro programa)
Soy móvil en este momento, por lo que no puedo buscar ni probar cosas y ciertamente no estoy en php, pero creo que debe haber una manera. De lo contrario, pregunte en el sitio de desbordamiento de pila, porque esto está relacionado con la programación, no con Bitcoin.
Esperaba que alguien tuviera experiencia relacionada con bitcoin con esto, aunque tiene razón, probablemente sea una pregunta más orientada a la programación y la respuesta válida para otro programa funcionaría para bitcoind. ¡Gracias por tu ayuda!

Respuestas (1)

en linux:

ps aux | grep bitcoind

O incluso:

watch ps aux | grep bitcoind

Pero para responder a su pregunta de manera ligeramente diferente, sugeriría mantener el bitcoind existente en ejecución. Luego, su nuevo nodo agrega una declaración de conexión con la IP local del nodo anterior en el archivo bitcoin.conf (ubicado generalmente en $HOME/.bitcoin/).

Su nuevo nodo se conectará únicamente al nodo existente y descargará, a través de su red local, todos los bloques del nodo existente.

Además, si ambas PC son móviles, puede dejarlo así para evitar descargas duplicadas de Internet. Una alternativa si la segunda es una computadora portátil, por ejemplo, es usar -addnode en su lugar. Desde aquí :

-addnode=<ip>          Add a node to connect to and attempt to keep the connection open
-connect=<ip>          Connect only to the specified node(s)
-dns                   Allow DNS lookups for -addnode, -seednode and -connect (default: 1)