fakeprinter/main.py

40 lines
1.6 KiB
Python
Raw Permalink Normal View History

2025-02-08 10:45:26 -05:00
import time
import threading
import signal
from fake_pjl_server import start_fake_pjl_service
from fake_lpd_server import start_fake_lpd_service
from fake_cups_server import start_fake_cups_service
from fake_http_server import start_fake_http_auth
from fake_telnet_server import start_fake_telnet_service
from fake_snmp_server import start_fake_snmp_service
# Event to manage service shutdown
shutdown_event = threading.Event()
# Function to clean up when stopping
def shutdown_handler(signum, frame):
print("\n[*] Shutting down all fake services...")
shutdown_event.set() # Signal all threads to exit
# Register signal handlers for stopping the service
signal.signal(signal.SIGTERM, shutdown_handler) # Stop from systemctl stop
signal.signal(signal.SIGINT, shutdown_handler) # Stop with Ctrl+C
# Start all fake printing services in the background
if __name__ == "__main__":
threading.Thread(target=start_fake_pjl_service, daemon=True).start()
threading.Thread(target=start_fake_lpd_service, daemon=True).start()
threading.Thread(target=start_fake_cups_service, daemon=True).start()
threading.Thread(target=start_fake_http_auth, daemon=True).start()
threading.Thread(target=start_fake_telnet_service, daemon=True).start()
threading.Thread(target=start_fake_snmp_service, daemon=True).start()
time.sleep(1)
print("[*] Fake services are running.")
# Keep the script alive until a termination signal is received
while not shutdown_event.is_set():
time.sleep(1) # Wait loop to keep the main thread alive
print("[*] Fake printer services stopped.")