40 lines
1.6 KiB
Python
40 lines
1.6 KiB
Python
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.")
|