银河麒麟系统中程序后台驻留需三重保障:基础用&释放终端但关闭终端后进程终止;持久化用nohup ./script.sh > log 2>&1 & 并确保输出目录可写;前台转后台用ctrl+z后bg %n;绕过kysec须sudo kysec-ppro-add -p pid -u uid -n name注册白名单。

银河麒麟系统中,命令行启动的程序默认在前台阻塞终端,导致无法继续输入其他指令;若不加处理直接关闭终端,进程还会被强制终止。必须通过特定命令组合实现真正后台驻留,且要兼顾终端释放、会话持久和系统级保护绕过三重目标。
基础后台启动:& 符号立即释放终端
在命令末尾添加 &,程序立刻转入后台运行,当前终端可继续使用。
输入 ./myapp & 后按回车,终端返回类似 [1] 12345 的作业编号与PID,表示已启动。
该方式仅解决「不卡终端」问题,【关闭终端后进程会立即终止】,不适合长期任务。
持久化后台运行:nohup + & 组合
这是最常用也最稳妥的方案,确保程序脱离终端生命周期独立存在。
执行 nohup ./myserver.sh > server.log 2>&1 &,其中 2>&1 表示把错误输出合并到标准输出,全部写入 server.log。
若不指定输出文件,nohup 默认尝试写入当前目录下的 nohup.out;【当前目录无写权限时会静默失败,命令根本不执行】,务必提前确认权限或显式重定向。
运行后终端显示 [1] 12345,同时可在任意时刻用 ps aux | grep myserver.sh 验证进程是否存活。
前台程序转后台:Ctrl+Z → bg 两步操作
适用于已经误在前台启动、尚未结束的程序,比如正在打印日志的调试脚本。
第一步:按下 Ctrl+Z,程序立即暂停并返回 shell 提示符,终端显示 [1]+ Stopped ./debug.sh。
第二步:输入 bg %1 回车,该作业恢复并在后台继续运行;%1 中的数字来自 jobs 命令列出的序号,不是 PID。
注意:此法仅对当前 shell 会话有效,退出终端后进程仍会消失,如需持久,请在转后台后补上 nohup 重跑或改用 systemd 方式。
绕过 KYSEC 进程保护:sudo kysec-ppro-add 白名单注册
银河麒麟默认启用 KYSEC 进程防护模块,会对非白名单后台进程周期性扫描并强制终止,尤其影响微信、钉钉、自定义守护进程等。
方法一:终端执行 sudo -i 切换 root,再运行 getstatus 确认 process protect: on 存在。
方法二:获取目标进程 PID,例如 pgrep -f "mydaemon",然后执行 sudo kysec-ppro-add -p PID号 -u $(id -u) -n "mydaemon"。
方法三:用 kysec-ppro-list 检查输出中是否含 mydaemon 及 enabled 状态,未出现则注册失败,需检查 PID 是否真实存活。
这一步不可跳过——【即使 nohup 成功,未加白名单的进程仍可能在数分钟后被系统无声 kill】。











