我有一个基于 Python 的服务器,我从终端启动它。然后,这个特定的终端实例将控制权交给程序,程序将其用作一种日志窗口,直到它关闭。这是正常的吗?还是我应该尝试以其他方式启动程序,使其仅显示为活动进程?如果我关闭启动程序的终端,程序也会随之死亡。
谢谢
答案1
将其变为守护进程(服务)
daemon --name="yourservicename" --output=log.txt sh yourscript.sh
答案2
即使旧版 bash 也使用 & 将进程发送到后台,但是也有其他几种方法......最基本的两种方法是:
1.)$~ your_command > outputfile_for_stdout &
# runs your command in background, giving you only PID so you can exit that process by `kill -9 PID_of_process`
# & goes at the end of row
2.)$~ your_command > outputfile_for_stdout
# this will run your program normally
# press Ctrl + Z then program will pause
$~ bg
# now your program is running in background
$~ fg
# now your program came back to foreground
3.)you can run terminal window under screen command so it will live until you either kill it or you reboot your machine
$~ screen
$~ run_all_your_commands
# Ctrl + A + D will then detach this screen
$~ screen -r will reattach it
其他一些有用的命令:
$~ jobs
# will show you all processes running right now, but without PID
$~ ps
# will show you all processes for actual terminal window
答案3
$ servicename &
使用&
会导致程序在后台运行,而不是阻塞 shell 直到程序结束。
答案4
您还可以从终端运行screen
或使用 来跟进您的命令&
。这是运行连续进程的简单方法。