tor now exits properly on STOP command

This commit is contained in:
Kevin Froman 2018-01-27 02:43:36 -06:00
parent ead0741e03
commit 4510dbfd82
No known key found for this signature in database
GPG Key ID: 0D414D0FE405B63B
2 changed files with 20 additions and 1 deletions

View File

@ -17,7 +17,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
'''
import subprocess, os, random, sys, logger, time
import subprocess, os, random, sys, logger, time, signal
class NetController:
'''NetController
This class handles hidden service setup on Tor and I2P
@ -27,6 +27,7 @@ class NetController:
self.readyState = False
self.socksPort = random.randint(1024, 65535)
self.hsPort = hsPort
self._torInstnace = ''
self.myID = ''
'''
if os.path.exists(self.torConfigLocation):
@ -66,4 +67,20 @@ HiddenServicePort 80 127.0.0.1:''' + str(self.hsPort) + '''
myID = open('data/hs/hostname', 'r')
self.myID = myID.read()
myID.close()
torPidFile = open('data/torPid.txt', 'w')
torPidFile.write(str(tor.pid))
torPidFile.close()
return
def killTor(self):
try:
pid = open('data/torPid.txt', 'r')
pidN = pid.read()
pid.close()
except FileNotFoundError:
return
try:
int(pidN)
except:
return
os.kill(int(pidN), signal.SIGTERM)
os.remove('data/torPid.txt')

View File

@ -134,11 +134,13 @@ class Onionr:
def killDaemon(self):
'''Shutdown the Onionr Daemon'''
logger.warn('Killing the running daemon')
net = NetController(self.config['CLIENT']['PORT'])
try:
self.onionrUtils.localCommand('shutdown')
except requests.exceptions.ConnectionError:
pass
self.onionrCore.daemonQueueAdd('shutdown')
net.killTor()
return
def showStats(self):
'''Display statistics and exit'''