&
、、、+などを使用せずにバックグラウンドでLinuxプロセスを起動できますnohup
か?tmux
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