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
