miniliuke
V2EX  ›  问与答

命令行给后台程序传值

  •  
  •   miniliuke · Aug 24, 2018 via Android · 2275 views
    This topic created in 2843 days ago, the information mentioned may be changed or developed.

    linux 下一个程序,想在不停止运行的情况下通过命令行比如输入 changeconfig -f 1.txt ,接受到 1.txt 。是利用管道、信号还是其他什么东西......

    15 replies    2018-08-25 09:15:51 +08:00
    miniliuke
        1
    miniliuke  
    OP
       Aug 24, 2018 via Android
    各种后台程序是怎么接收这些值的啊?
    ech0x
        2
    ech0x  
       Aug 24, 2018
    监听一个本地的端口,然后通过端口传数据?
    miniliuke
        3
    miniliuke  
    OP
       Aug 24, 2018 via Android
    @ech0x 每个需要这样的程序开个端口,不太现实吧......
    Cbdy
        4
    Cbdy  
       Aug 24, 2018 via Android
    端口,信号都可以
    miniliuke
        5
    miniliuke  
    OP
       Aug 24, 2018 via Android
    其实就是守护进程的通信问题・_・?比如说 docker 的守护进程是怎么获得 docker exec 后面的参数的......
    veelog
        6
    veelog  
       Aug 24, 2018 via iPhone
    你这种方式得打开文件读取,另外

    cat 1.txt|changeconfig

    这种方式,通过管道,就从标准输入读取
    miniliuke
        7
    miniliuke  
    OP
       Aug 24, 2018 via Android
    @Cbdy 信号好像有两个可以自定义的,但是传递不了数据...
    miniliuke
        8
    miniliuke  
    OP
       Aug 24, 2018 via Android
    @veelog 我只想获得"1.txt"这个字符串就行,关键是守护进程怎么获得这个参数?现在只能想到 socket 和管道,不知道到底其他人是怎么实现的,比如 docker 的 docker exec 命令
    CSM
        9
    CSM  
       Aug 24, 2018
    Unix domain socket 不需要端口号
    miniliuke
        10
    miniliuke  
    OP
       Aug 24, 2018 via Android
    @CSM 的确不错,守护进程用这个可还行......
    billlee
        11
    billlee  
       Aug 24, 2018
    双向通信用 unix domain socket, 单向通信用 FIFO
    choury
        12
    choury  
       Aug 24, 2018
    @miniliuke #8 进程间通信方案就那么几种,挨个看下能不能符合你要求呗
    zhanglintc
        13
    zhanglintc  
       Aug 24, 2018
    一般监听信号 1, 也就是 SIGHP, 这个信号好像本来就是被用来做 reload 的. 监听到这个信号后绑定的函数去读取指定的文件, 你想要传进去的内容提前写到这个文件里. 感觉一般都这么干吧.
    ysc3839
        14
    ysc3839  
       Aug 24, 2018 via Android
    关键词:进程间通信 Inter-process communication
    miniliuke
        15
    miniliuke  
    OP
       Aug 25, 2018 via Android
    @zhanglintc 有可能,比较实用
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2603 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 01:55 · PVG 09:55 · LAX 18:55 · JFK 21:55
    ♥ Do have faith in what you're doing.