On 10 June 2017 at 20:41, Bruce Dubbs <[email protected]> wrote:

> Bruce Dubbs wrote:
>
>> Thomas Seeling wrote:
>>
>>> Hallo,
>>>
>>>
>>> I seem to have a serious misunderstanding how SysV init works ...
>>> After building NFS support I could happily mount NFS filesystems from my
>>> NAS.
>>>
>>> Then I did a reboot and noticed that the sequence of kill scripts is a
>>> bit ... unfortunate to say the least.
>>> First it removes the IP address from the network interfaces and only
>>> *then* it tries to unmount the "rest" of the filesystems.
>>> This does not work for NFS though - it hangs forever.
>>>
>>> So I wrote a special kill script to unmount NFS and put it *before* the
>>> kill script for the interfaces.
>>> This works fine and I was happy.
>>>
>>> At least for a short time - until I used the "poweroff" command and
>>> noticed that once again the sequence is not correct.
>>>
>>> I thought the logic behind poweroff and reboot is the same but obviously
>>> there are different code paths.
>>>
>>> Can somebody clue me in what I'm doing wrong?
>>>
>>> Here are my init scripts as far as network and NFS are concerned:
>>>
>>> /etc/rc.d/init.d/:
>>> mountfs
>>> mountnetfs
>>> network
>>> nfs-client
>>>
>>> /etc/rc.d/rc3.d/:
>>> S20network
>>> S30rpcbind
>>> S31nfs-client
>>>
>>> /etc/rc.d/rc6.d/:
>>> K30nfs-client
>>> K30rpcbind
>>> K45mountnetfs
>>> K80network
>>> S99reboot
>>>
>>
>> For poweroff, the sequence needs to be defined in /etc/rc.d/rc0.d/.
>>
>> One of the boot scripts may need a minor correction.  We don't use nfs a
>> lot so we might have a problem with shutdown.
>>
>> The stop portion of mountfs does:
>>
>> umount -a -d -r -t notmpfs,nosysfs,nodevtmpfs,noproc,nodevpts >/dev/null
>>
>> Try adding a -f switch to that to force the umount when the network is
>> down.  In the meantime I'll think about a cleaner way to do the network
>> umounts.  Perhaps the best place would be in the network stop script and
>> add
>>
>> umount -a -f -O _netdev >/dev/null
>>
>> But that will not handle any network mounts that are not in fstab.
>>
>> Any testing and feedback you can give will be appreciated.
>>
>
> When considering network mounted filesystems we need to consider nfs,
> sshfs, and smb (samba) mounts.  One thing all these have in common is that
> the mounted device (first entry) in /proc/mounts has a colon specifying the
> host.
>
> Adding the following to the *network* script should umount all these files.
>
>    stop)
>       # Unmount any file systems mounted over the network
>       # Read /proc/mounts and look for a colon in the first field
>       for device in `cut -d" " -f1 /proc/mounts|grep :`; do
>         umount -f $device 2>$1 >/dev/null
>       done
>    ...
>
> What do you think?


I think that backticks are difficult to read, as opposed to $().

Richard
-- 
http://lists.linuxfromscratch.org/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to