Re: /var/lock jako jakis tmpfs
Bartłomiej Zimoń
uzi18 w o2.pl
Pią, 25 Cze 2010, 20:59:34 CEST
Dnia 20 czerwca 2010 22:09 Jacek Konieczny <jajcus w jajcus.net> napisał(a):
> On Sun, Jun 20, 2010 at 05:12:51PM +0200, Bartłomiej Zimoń wrote:
> > Dnia 20 czerwca 2010 13:43 Pawel Kwiatkowski <qwiat w o2.pl> napisał(a):
> > > Dnia 2010-06-18, pią o godzinie 09:05 +0200, Bartłomiej Zimoń pisze:
> > > > Witam!
> > > > Mala propozycja: /var/lock jako tmpfs lub podobny
> > > > Pozdrawiam
> > >
> > > Zgaduję, że dotyczy to pozostawiania śmieci po przemontowaniu systemu
> > > plików w RO lub po nagłym padzie systemu. Ten sam problem mamy
> > > z /var/run i plikami z PID-ami. Tyle że tam też są rzeczy należące do
> > > pakietów.
> > >
> > Tez ale glownie chodzi o mozliwosc startu serwisu zanim / filesystem bedzie mial dostep rw
> > Co znaczaco przyspiesza uruchamianie systemu zwlaszcza w systemd.
>
> I potem będzie debugowanie tysiąca problemów wynikłych z tego, że w imię
> najszybszego uruchomienia serwisy są startowane zanim mają to czego
> potrzebują (u niektórych oczywiście będzie działać u innych nie)…
>
> No i czy z nowoczesnym initem (a zakładam, że takim systemd jest), który
> wie co w systemie uruchomił, wciąż potrzeba tego /var/lock/subsys/cośtam?
>
Cos spłodziłem w wolnej chwili, a wynik poniżej
(fragment z systemd wrzuce oddzielnie do svn)
Co o tym sadzicie, moge wrzucac?
Pozdrawiam
Bartłomiej Zimoń
http://starowa.one.pl/~uzi/pld/rc-scripts-tmpfs.patch
Index: rc.sysinit
===================================================================
--- rc.sysinit (wersja 11564)
+++ rc.sysinit (kopia robocza)
@@ -117,10 +117,22 @@
if ! is_yes "$VSERVER" ; then
# we need /proc mounted before everything
is_fsmounted proc /proc || mount -n -o gid=17 -t proc /proc /proc
+
+ if is_yes "$SUBSYS_AS_TMPFS" ; then
+ mount -n -o mode=755,nosuid,nodev,noexec -t tmpfs none /var/lock/subsys
+ fi
+ if is_yes "$VAR_RUN_AS_TMPFS" ; then
+ mkdir /tmp/.copy_of_run
+ cp -aRf /var/run/* /tmp/.copy_of_run
+ mount -n -o mode=755,nosuid,nodev,noexec -t tmpfs none /var/run
+ cp -aRf /tmp/.copy_of_run/* /var/run
+ rm -rf /tmp/.copy_of_run
+ fi
+
# Only read this once.
cmdline=$(cat /proc/cmdline)
- if strstr "$cmdline" "pld.no-upstart" ; then
+ if strstr "$cmdline" "pld.no-upstart" || grep -q systemd /proc/1/cmdline 2>/dev/null ; then
USE_UPSTART="no"
fi
Index: rc.shutdown
===================================================================
--- rc.shutdown (wersja 11565)
+++ rc.shutdown (kopia robocza)
@@ -110,6 +110,14 @@
force="-f"
done
+ if is_yes "$VAR_RUN_AS_TMPFS" ; then
+ mkdir /tmp/.copy_of_run
+ cp -aRf /var/run/* /tmp/.copy_of_run
+ umount /var/run
+ cp -aRf /tmp/.copy_of_run/* /var/run
+ rm -rf /tmp/.copy_of_run
+ fi
+
run_cmd "Remounting root filesystem in ro mode" mount -n -o remount,ro /
if [ -x /sbin/vgchange ]; then
Więcej informacji o liście dyskusyjnej pld-devel-pl