Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
dinggk
V2EX  ›  Linux

怎样给后台进程发送键盘消息?

  •  
  •   dinggk · Mar 12, 2018 via Android · 5021 views
    This topic created in 2994 days ago, the information mentioned may be changed or developed.
    如果有一个进程在后台运行,这个进程本来是可以接受键盘消息的,但是它现在在后台,只能查到进程 ID,怎样给他发键盘消息呢?
    rim99
        1
    rim99  
       Mar 12, 2018 via iPhone
    如果进程是用 bg 命令放在后台的 那就可以用 fg 命令召唤到前台
    peinstrike
        2
    peinstrike  
       Mar 12, 2018
    使用 jobs 可以看到后台运行的进程
    返回结果类似如下:
    [1] Running python manage.py runserver 0:8000 &
    [2]- Running python manage.py runserver 0:8001 &
    [3]+ Running python manage.py runserver 0:8002 &
    如果想让它回到前台,比如让第二个回到前台运行,只需使用命令 fg 2 即可
    iwtbauh
        3
    iwtbauh  
       Mar 13, 2018 via Android
    没说清,如果是 GUI 程序,需要枚举窗口,并通过 XInternAtom 获取 PID 进行匹配,核心是调用
    XSendEvent ( https://www.x.org/archive/X11R7.5/doc/man/man3/XSendEvent.3.html )函数模拟键盘事件
    如果是 CLI 程序,无法给后台进程输入,这是 POSIX 规定的,后台进程读输入会产生 SIGTTIN 信号
    如果想达到相同的要求,就不能用后台进程,伪终端( pty )了解一下
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1313 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 17:30 · PVG 01:30 · LAX 10:30 · JFK 13:30
    ♥ Do have faith in what you're doing.