&
, nohup
, tmux
, + 등을 사용하지 않고 백그라운드에서 Linux 프로세스를 시작할 수 있습니까 disown
?CTRL-Z
bg
즉, 내가 찾고 있는 것은 다음과 같습니다.무료 콘솔프로그램 사용자가 아닌 프로그램 자체 내에서 콘솔과 분리된 Windows API입니다.
답변1
지금은 python3 소스가 없습니다.
의사 Python 코드는 다음과 같습니다.
token = fork()
if ( token == 0 ) :
close(stdin) ; close(stdour) ; close(stderr)
else :
print (token)
return
## actual payload code start here
그런 다음 터미널을 닫고 SSH 연결을 하면 포크된 프로세스가 그대로 유지됩니다.
stdin 등을 닫지 않습니다. 터미널/ssh 세션이 종료되는 것을 방지합니다.
실용적인 점으로 저는 주로 디버그/정보 메시지를 인쇄하기 위해 표준 출력을 로그 파일로 다시 보냅니다.
내 python3 코드에서 발췌
from os import fork, getuid, mkdir, path, unlink
## payload code initialisation
pid=fork()
if pid > 0 :
print (f'démon pour {moi} forké avec le pid {pid}')
pidtxt="/run/user/"+str(getuid())+"/"+moi+".pid"
if path.isfile(pidtxt) : unlink(pidtxt)
fpid=open(pidtxt,"w")
print('{pid}'.format(pid=pid),file=fpid)
fpid.close()
exit()
sys.stdout.close()
sys.stdin.close()
sys.stderr.close()
flog = open("log/"+moi+".log","a",buffering=1)
sys.stdout = flog
sys.stderr = flog
## payload code run