[systemd-devel] [systemd-commits] 9 commits - configure.ac .gitignore Makefile.am Makefile-man.am man/systemd-fsckd.service.xml man/systemd-fsck at .service.xml po/de.po po/el.po po/fr.po po/hu.po po/it.po po/pl.po po/POTFILES.in po/pt_BR.po po/ru.po po/sv.po po/uk.po src/fsck src/fsckd src/shared test/mocks units/.gitignore units/systemd-fsckd.service.in units/systemd-fsckd.socket units/systemd-fsck-root.service.in units/systemd-fsck at .service.in
Didier Roche
didrocks at ubuntu.com
Wed Mar 11 06:27:41 PDT 2015
Le 10/03/2015 11:55, Lennart Poettering a écrit :
> On Tue, 10.03.15 08:33, Martin Pitt (martin.pitt at ubuntu.com) wrote:
>
>> Lennart Poettering [2015-03-09 19:11 +0100]:
>>> Anyway, please look into fixing this, I am kinda relying on patches
>>> for this, as I don't use this myself. Fedora isn't set up for it, nor
>>> do I use a file system that still requires fsck at boot...
>> Yep, we'll fix those. But for the record, this can be tested easily
>> anywhere by replacing /usr/sbin/fsck with test/mocks/fsck (I'm on
>> btrfs myself..)
> Hmm, is there also a ply mocker? That would be good!
There is none AFAIK, I'm using plymouth-x11 which is working quite well.
The only difficulty that I realized is that Control+C doesn't work for
cancelling into that X window. Consequently, everytime I changed to "c"
or any other key to test.
>
> Well, again: fsck should *not* 'forward'. It should not be bothered at
> all with processing stdout of the actual fsck tool at all. Instead it
> should open a AF_UNIX/SOCK_STREAM connection to fsckd, use shutdown()
> to close the read side, and then make the resulting fd the fd passed
> to fsck's -C parameter. That way, the fsck tool will pass the progress
> data *directly* to systemd-fsckd, and systemd-fsck will never see it
> at all!
The suggestion is now implemented in the attached patch. Please note
that they rely on 0001-fsckd-Don-t-use-strjoina-on-gettext-call.patch
(just posted a new version) and
0002-fsckd-check-if-plymouth-is-running-before-attempting.patch (didn't
change that one).
It should handle what you had your mind, still enabling cancellation
through SIGTERM while removing the need for intermediates sockets.
Please note that I needed to open in systemd-fsck the socket in the
fork() children part to be able to identify the right fsck pid. I thus
used then an empty cmdline[] slot for this. Another way would be to
build the command line in the fork() children call entirely of course.
Not sure what you would prefer.
As always, I'm opened to any suggestion and hope that will satisfy your
original vision more :)
Cheers,
Didier
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-fsckd-directly-connect-fsck-output-to-systemd-fsckd.patch
Type: text/x-diff
Size: 18823 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20150311/8c14643f/attachment.patch>
More information about the systemd-devel
mailing list