• Morphit @feddit.uk
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    8 months ago

    For sure, I don’t know the internals of Samba, but surely the server knows that it’s serving a file no matter how the client accesses it. I don’t think a few dbus messages would cause issues.

    I have my own service that looks at the network traffic via /proc and a few other things. That sends the system to sleep itself if everything looks truly idle.

    I do think it would be nice for a file server like samba to inhibit sleep using the standard interface for it. But yeah, I appreciate there are complications, like video playback is presumably pulling a small extent of a file at a time, so there would have to be some kind of timer before releasing the inhibition or the system would sleep between transfers.

    EDIT: I just took a look; with loglevel set to 3 for smb and smb2 I see log messages like:

    smbd_smb2_read: fnum 1712966762, file my_video.mkv, length=262144 offset=82366464 read=262144
    

    These occur at most 10 seconds apart when playing a video over a share from another host. I don’t see why the smbd daemon couldn’t inhibit sleep untill smbd_smb2_read hasn’t run for a minute or so. You could have a script that monitors that log output and does this externally but it’d be nice to have built in.

    • just_another_person@lemmy.world
      link
      fedilink
      arrow-up
      1
      arrow-down
      1
      ·
      edit-2
      8 months ago

      The server side should never be expected to sleep at all, so that’s just a totally different thing. I was under the impression you were having issues with the client. If you have sleep enabled on the server/service side of things and you expect it to work, then there’s yer problem. You’ll need some custom work to prevent your power profiles and such from overriding systemd-sleep or whatever you intend to happen.

      • Morphit @feddit.uk
        link
        fedilink
        arrow-up
        4
        ·
        8 months ago

        Ah, that’s the misunderstanding. The original comment was talking about “watching something on another pc”. Like playing a video from a desktop PC on a laptop in another room. So it’s the samba server we want to prevent from sleeping, not the client. Yes it’d be nice to have a 24/7 media server set up, but for the simple case of sharing a file from one PC to another, it’d be nice for the server not to sleep in the middle of it by default.