Я думаю, что Lift-y способ сделать это с LiftRules.unloadHooks
.
Это плохо документировано (AFAIK), но если вы посмотрите в исходном коде Lift, вы увидите, что когда LiftServlet
равно destroy()
ed, функции, определенные в LiftRules.unloadHooks
выполнены.
Вы можете добавить функции к unloadHooks
RulesSeq
с помощью метода append
или prepend
, в зависимости от того, в каком порядке вы хотите, чтобы они выполнялись. Итак, в вашем методе bootstrap.liftweb.Boot.boot
, вы можете сделать что-то вроде этого:
sshDaemon.start()
LiftRules.unloadHooks.append( () => sshDaemon.stop() )
(Предполагается, что именно так вы начали и остановили своего демона SSH.)
Я не уверен на 100%, что метод LiftServlet.destroy()
вызывается при запуске команды container:restart
веб-плагина sbt - это определяется плагином и его взаимодействием с Jetty, а не Lift - но container:stop
команда обязательно должна сделать свое дело.