discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Daemonizing a flowgraph


From: Marcus Müller
Subject: Re: [Discuss-gnuradio] Daemonizing a flowgraph
Date: Wed, 12 Jul 2017 09:29:17 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0

Oh, by the way, maybe you, instead, simply would want to run your whole flowgraph using `nohup`, or simply in a `screen` or `tmux` session :)


On 07/12/2017 09:22 AM, Marcus Müller wrote:

If you can, update to the most current UHD – we've worked on the logging infrastructure, and you can simply disable that.

This will probably require building both UHD, and as soon as you've done that, GNU Radio from source.

Best regards,
Marcus

On 07/11/2017 10:39 PM, devin kelly wrote:
Hello,

I have a flowgraph that I made with  GRC and modified.  All I want to do with the flowgraph is make it run as a daemon.  I understand that if there are overflows or underflows I'll miss them, that's OK.

I added some basic python code to daemonize my flowgraph:


        # Fork once
        try:
            pid = os.fork()
        except OSError:
            print 'error forking'

        if pid > 0:  # if parent, return
            return

        os.umask(0)

        # Reset the session ID
        try:
            os.setsid()
        except OSError:
            sys.exit(1)

        # Fork twice, giving up ownership of first parent's SID
        try:
            pid = os.fork()
        except OSError:
            print 'error forking'

        if pid != 0:  # if parent, return
            sys.exit(0)

        # Change PWD
        try:
            os.chdir('/')
        except OSError:
            return

        # Close open files
        sys.stdin.close()
        sys.stdout.close()
        sys.stderr.close()

        with open('/dev/null', 'r+') as devnull:
            sys.stdin = devnull
            sys.stdout = devnull
            sys.stderr = devnull

    tb = top_block_cls(options)
    tb.start()
    time.sleep(60.0)
    tb.stop()
    tb.wait()

When I run this, it works at first (I get my prompt back, you can see me trying to open the file).  But then the UHD hijacks my stdout/stderr and resumes as if nothing happened.

$ ./flowgraph.py -t 30                                                                                             
linux; GNU C++ version 4.8.4; Boost_105500; UHD_003.009.005-0-g32951af2

$ vim flowgraph.py -- X300 initialization sequence...                                                              
-- Determining maximum frame size... 1472 bytes.
-- Setup basic communication...
-- Loading values from EEPROM...
-- Setup RF frontend clocking...
-- Radio 1x clock:200
-- Initialize Radio0 control...
-- Performing register loopback test... pass
-- Initialize Radio1 control...
-- Performing register loopback test... pass

How do I stop the UHD from doing this?

Thanks for any help,
Devin


_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio



reply via email to

[Prev in Thread] Current Thread [Next in Thread]