ogrepository/bin/stopP2P.py

71 lines
2.7 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Este script finaliza el proceso "btlaunchmany.bittornado" (correspondiente al seeder P2P) y el proceso "bttrack" (correspondiente al tracker P2P),
lo que en la práctica hará que se cancelen las transmisiones P2P activas en el momento de ejecutarlo.
No he encontrado la forma de cancelar una transferencia P2P concreta, ya que "bttrack" hace tracking de todos los torrents de ogRepo,
y es el proceso que es necesario finalizar para cancelar las transferencias P2P (con el seeder no bastaría, porque los clientes también hacen seed).
No recibe ningún parámetro.
"""
# --------------------------------------------------------------------------------------------
# IMPORTS
# --------------------------------------------------------------------------------------------
import subprocess
# --------------------------------------------------------------------------------------------
# FUNCTIONS
# --------------------------------------------------------------------------------------------
def kill_seeder():
""" Finaliza cualquier proceso activo de "btlaunchmany.bittornado",
que corresponde al seeder P2P.
"""
try:
subprocess.run(f"sudo pkill -9 btlaunchmany".split(), check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
print("Process btlaunchmany.bittornado finalized")
except Exception as error_description:
print(f"No btlaunchmany.bittornado process running? Returned error: {error_description}")
def kill_tracker():
""" Finaliza cualquier proceso activo de "bttrack",
que corresponde al tracker P2P.
"""
try:
subprocess.run(f"sudo pkill -9 bttrack".split(), check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
print("Process bttrack finalized")
except Exception as error_description:
print(f"No bttrack process running? Returned error: {error_description}")
# --------------------------------------------------------------------------------------------
# MAIN
# --------------------------------------------------------------------------------------------
def main():
"""
"""
# Finalizamos cualquier proceso activo de "btlaunchmany.bittornado" (seeder):
kill_seeder()
# Finalizamos cualquier proceso activo de "bttrack" (tracker):
kill_tracker()
# --------------------------------------------------------------------------------------------
if __name__ == "__main__":
main()
# --------------------------------------------------------------------------------------------