我有一个C ++代码,可以从Python运行和使用它的功能。我的问题是-如何停止运行该代码(例如ctrl + c,如果它在控制台中)然后重新启动,但是只有c ++部分,其余的python应该像以前一样工作。
这是我使用C ++代码的方式:
from os.path import abspath, dirname, join
fname = abspath(inspect.getfile(inspect.currentframe()))
lib = ctypes.cdll.LoadLibrary(join(dirname(fname), 'shared_lib.so'))
func = lib.func
func.restype = None
func.argtypes= None
是否有办法重新做?
您可以添加信号处理程序:
import signal
from os.path import abspath, dirname, join
def restart_server():
# Restart code
signal.signal(signal.SIGTERM, restart_server)
fname = abspath(inspect.getfile(inspect.currentframe()))
lib = ctypes.cdll.LoadLibrary(join(dirname(fname), 'shared_lib.so'))
func = lib.func
func.restype = None
func.argtypes= None
此信号处理程序捕获信号TERMINATE(Ctrl + C)并调用给定的函数。