I am making a simple ping script in python, and was looking to add functionality for getting host names for IPs that are up. To do this, im getting the output of nmblookup -A {ip} using os.popen, and parsing the output. the problem im running into is that for systems where nmblookup wont work (such as routers), the command takes a long time to get an error, whereas when the command runs successfully, it retruns results in under a second. My question is how to only wait N seconds for the nmblookup command to return something, and if it doesn't, move on with the program? PS, this is all in linux.
            Asked
            
        
        
            Active
            
        
            Viewed 51 times
        
    0
            
            
         
    
    
        AWein
        
- 1
- 1
- 
                    Does this answer your question? [Kill or terminate subprocess when timeout?](https://stackoverflow.com/questions/4158502/kill-or-terminate-subprocess-when-timeout) – Evgeny Jul 19 '20 at 04:02
1 Answers
0
            
            
        You can prefix the command with timeout. Refer to the man page of it.
You can do a Popen and run your command as
root@ak-dev:~# timeout 1 sleep 20
root@ak-dev:~# echo $?
124
 
    
    
        Aravindhan Krishnan
        
- 77
- 6