@@ -45,39 +45,44 @@ def is_active_server(self) -> bool:
4545 try :
4646 p = psutil .Process (self .pid )
4747 except psutil .NoSuchProcess :
48- log .info (f"Found entry no longer exists { self .pid } " )
48+ log .debug (f"Found entry no longer exists { self .pid } ; removing entry." )
49+ remove_server_entry (self .path_hash )
4950 return False
5051 if not p .is_running ():
51- log .info (f"Found entry no longer running { p .pid } " )
52+ log .debug (f"Found entry no longer running { p .pid } ; removing entry." )
53+ remove_server_entry (self .path_hash )
5254 return False
5355 if p .status == psutil .STATUS_ZOMBIE :
54- log .info (f"Found zombie process { p .pid } " )
56+ log .debug (f"Found zombie process { p .pid } ; removing entry." )
57+ remove_server_entry (self .path_hash )
5558 return False
5659 for _ , _ , _ , laddr , _ , _ in p .net_connections ("all" ):
5760 if isinstance (laddr , str ):
5861 log .error (
59- f"View encountered an error. Please report this: process { self .pid } with laddr { laddr } "
62+ f"BUG: the `pretext view` command encountered an error. Please report this: process { self .pid } with laddr { laddr } "
6063 )
6164 continue
6265 elif isinstance (laddr .port , int ) and laddr .port == self .port :
63- log .info (f"Found server at { self .url ()} " )
66+ log .info (f"Found PreTeXt web server at { self .url ()} " )
6467 return True
6568 else :
6669 log .debug (f"Found process { self .pid } with laddr { laddr } " )
67- log .info (
70+ log .debug (
6871 f"Found process { self .pid } no longer listening on specified port { self .port } "
6972 )
7073 return False
7174
7275 def terminate (self ) -> None :
7376 """Attempt to terminate the process described by this info."""
7477 try :
75- log .info (f"Terminating { self .pid } " )
76- psutil .Process (self .pid ).terminate ()
78+ log .debug (f"Terminating { self .pid } " )
7779 remove_server_entry (self .path_hash )
80+ psutil .Process (self .pid ).terminate ()
7881 except Exception as e :
79- log .info (f"Terminate failed for { self .pid } ." )
80- log .exception (e , exc_info = True )
82+ log .error (
83+ f"Attempt to terminate PreTeXt web server failed for process { self .pid } on port { self .port } ."
84+ )
85+ log .debug (e , exc_info = True )
8186
8287 def url (self ) -> str :
8388 return f"{ self .binding } :{ self .port } "
@@ -104,8 +109,10 @@ def get_running_servers() -> t.List[RunningServerInfo]:
104109 with open (running_servers_file , "r" ) as f :
105110 return [RunningServerInfo .from_file_line (line ) for line in f .readlines ()]
106111 except IOError as e :
107- log .info ("Unable to open running servers file." )
108- log .exception (e , exc_info = True )
112+ log .error (
113+ f"Unable to open list of running PreTeXt web servers expected at ({ running_servers_file } )."
114+ )
115+ log .debug (e , exc_info = True )
109116 return []
110117
111118
@@ -122,8 +129,8 @@ def save_running_servers(running_servers: t.List[RunningServerInfo]) -> None:
122129 # Write each server info to a new line
123130 f .writelines ([info .to_file_line () for info in running_servers ])
124131 except IOError as e :
125- log .info ("Unable to write running servers file." )
126- log .exception (e , exc_info = True )
132+ log .error ("Unable to write running servers file." )
133+ log .debug (e , exc_info = True )
127134
128135
129136def add_server_entry (path_hash : str , pid : int , port : int , binding : str ) -> None :
@@ -140,7 +147,7 @@ def add_server_entry(path_hash: str, pid: int, port: int, binding: str) -> None:
140147 log .info (f"There are { PURGE_LIMIT } or more servers on file. Cleaning up ..." )
141148 running_servers = list (stop_inactive_servers (running_servers ))
142149 save_running_servers (running_servers )
143- log .info (f"Added server entry { new_entry .to_file_line ()} " )
150+ log .info (f"Added pretext web server entry { new_entry .to_file_line ()} " )
144151
145152
146153def remove_server_entry (path_hash : str ) -> None :
@@ -182,11 +189,11 @@ def start_server(
182189 port : int = 8128 ,
183190 callback : t .Callable [[int ], None ] | None = None ,
184191) -> None :
185- log .info ("setting up ..." )
192+ log .info ("setting up PreTeXt web server ..." )
186193 path_hash = hash_path (base_dir )
187194 pid = os .getpid ()
188195 binding = binding_for_access (access )
189- log .info ("values set..." )
196+ log .debug ("values set: %s, %s, %s" , path_hash , binding , port )
190197
191198 # Previously we defined a custom handler to prevent caching, but we don't need to do that anymore. It was causing issues with the _static js/css files inside codespaces for an unknown reason. Might bring this back in the future.
192199 # 2024-04-05: try using this again to let Firefox work
@@ -211,9 +218,9 @@ class TCPServer(socketserver.TCPServer):
211218 while True :
212219 try :
213220 with TCPServer ((binding , port ), RequestHandler ) as httpd :
214- log .info ("adding server entry" )
221+ log .debug ("adding PreTeXt web server entry" )
215222 add_server_entry (path_hash , pid , port , binding )
216- log .info ("Starting the server" )
223+ log .debug ("Starting the PreTeXt web server" )
217224 if callback is not None :
218225 callback (port )
219226 httpd .serve_forever ()
@@ -222,7 +229,7 @@ class TCPServer(socketserver.TCPServer):
222229 port += 1
223230 log .warning (f"Trying port { port } instead.\n " )
224231 except KeyboardInterrupt :
225- log .info ("Stopping server." )
232+ log .info ("Stopping PreTeXt web server." )
226233 remove_server_entry (path_hash )
227234 return
228235
@@ -241,7 +248,7 @@ def start_codespace_server(
241248 binding = binding_for_access (access )
242249 log .debug (f"values set: { path_hash } , { binding } , { port } " )
243250
244- log .info ("Starting the server" )
251+ log .info ("Starting PreTeXt web server" )
245252 server_process = subprocess .Popen (
246253 [sys .executable , "-m" , "http.server" , str (port )], cwd = base_dir
247254 )
0 commit comments