1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE> [Mageia-dev] [soft-commits] [4379] fix shutting down
</TITLE>
<LINK REL="Index" HREF="index.html" >
<LINK REL="made" HREF="mailto:mageia-dev%40mageia.org?Subject=Re%3A%20%5BMageia-dev%5D%20%5Bsoft-commits%5D%20%5B4379%5D%20fix%20shutting%20down&In-Reply-To=%3C4FA26258.1070107%40colin.guthr.ie%3E">
<META NAME="robots" CONTENT="index,nofollow">
<META http-equiv="Content-Type" content="text/html; charset=us-ascii">
<LINK REL="Previous" HREF="015214.html">
<LINK REL="Next" HREF="015204.html">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H1>[Mageia-dev] [soft-commits] [4379] fix shutting down</H1>
<B>Colin Guthrie</B>
<A HREF="mailto:mageia-dev%40mageia.org?Subject=Re%3A%20%5BMageia-dev%5D%20%5Bsoft-commits%5D%20%5B4379%5D%20fix%20shutting%20down&In-Reply-To=%3C4FA26258.1070107%40colin.guthr.ie%3E"
TITLE="[Mageia-dev] [soft-commits] [4379] fix shutting down">mageia at colin.guthr.ie
</A><BR>
<I>Thu May 3 12:47:52 CEST 2012</I>
<P><UL>
<LI>Previous message: <A HREF="015214.html">[Mageia-dev] [soft-commits] [4379] fix shutting down
</A></li>
<LI>Next message: <A HREF="015204.html">[Mageia-dev] freeze push: kadu 0.11.3
</A></li>
<LI> <B>Messages sorted by:</B>
<a href="date.html#15217">[ date ]</a>
<a href="thread.html#15217">[ thread ]</a>
<a href="subject.html#15217">[ subject ]</a>
<a href="author.html#15217">[ author ]</a>
</LI>
</UL>
<HR>
<!--beginarticle-->
<PRE>'Twas brillig, and Thomas Backlund at 03/05/12 10:45 did gyre and gimble:
><i> Colin Guthrie skrev 3.5.2012 12:33:
</I>>><i> 'Twas brillig, and Thierry Vignaud at 03/05/12 09:05 did gyre and gimble:
</I>>>><i> On 3 May 2012 09:53, Guillaume Rousse<<A HREF="https://www.mageia.org/mailman/listinfo/mageia-dev">guillomovitch at gmail.com</A>> wrote:
</I>>>>>><i> please use system("/usr/bin/chvt", "1"), or system(qw(/usr/bin/chvt
</I>>>>>><i> 1))
</I>>>>>><i> instead in order to not fork useless shells.
</I>>>>><i>
</I>>>>><i> and kill is a perl builtin perl too:
</I>>>>><i> kill SIGRTMAX-10, 1
</I>>>><i>
</I>>>><i> needs 'use POSIX;' though for symbolic values
</I>>><i>
</I>>><i> Actually none of the above. Please do it in the systemd unit itself with
</I>>><i> ExecStartPre as this actually fixes the issues, whereas the internal
</I>>><i> approach does not (at least in my tests) :)
</I>>><i>
</I>><i>
</I>><i> It seemed to work in vbox, but I'll retest the isos currently building
</I>
Ahh OK. I coudln't make it work in my vbox when doing it in the script,
but if it worked for you then it's probably fine.
>><i> In actual fact, this shut down script could be something that the
</I>>><i> mgalive dracut module drops into /run/systemd/systemd. This would
</I>>><i> prevent any poking at the installed file system and maybe allows for
</I>>><i> easier hacking - i.e. no need to actually edit the squashfs filesystem
</I>>><i> to tweak certain things.
</I>>><i>
</I>><i>
</I>><i> What/how should this look like ?
</I>
Basically the dracut module would add some kind hook that gets run
during the boot phase that would copy a unit file and a script to the
/run tree (/run/systemd/system/ folder)
This unit file could be called halt-local.service as this would override
the one in /lib/systemd/system/ folder of the installed system. The
dracut hook would also copy the script needed (i.e. the current
/sbin/halt.local) to somewhere in the run tree (I suggest
/run/mageia/live-halt or a similarly descriptive name) and the unit
copied previously would simply refer to it in it's ExecStart= line
rather than /sbin/halt.local.
I'm still not totally sure how the live CD's are built, but this may
make tweaking the images more easy than rebuilding the whole squashfs image?
Ping me on IRC if you want to discuss it further or if you want to to
make a change somewhere - tho' you'll need to point me at where to make
the change! :)
As a slightly more radical approach, dracut is also designed to allow a
pivot back into the initrd on shutdown/reboot.
It does so via these systemd files in the dracut package:
/lib/systemd/system/dracut-shutdown.service
/lib/systemd/system/reboot.target.wants/dracut-shutdown.service
/lib/systemd/system/shutdown.target.wants/dracut-shutdown.service
and this script:
/usr/lib/dracut/dracut-initramfs-restore
The key systemd file is the first one, the other two are just symlinks
to ensure it's run when needed.
The script itself is pretty simple and somewhat ugly (also it only
supports gziped initrds at present - although that should be trivial to
fix) and relies on naming conventions for initrds as there is no way to
know which initrd the current boot used AFAIK. I've suggest a workaround
for both to Harald upstream (short version ship these scripts inside
initrd and put them in /run too - use the name of the initrd passed on
dracut command line and you know the compression format used, so you
also know how to decompress - still not perfect but still a bit better IMO).
Anyway, this allows the initrd continue and there are late hooks we can
put into our custom dracut module to deal with the whole ejecting stuff.
Obviously anything needed to do this would have to be included in the
initramfs (so I don't think the current perl implementation is wise :p)
Anyway, this is more food for thought than practical suggestions at this
stage - one to think about tho' :)
Col
--
Colin Guthrie
colin(at)mageia.org
<A HREF="http://colin.guthr.ie/">http://colin.guthr.ie/</A>
Day Job:
Tribalogic Limited <A HREF="http://www.tribalogic.net/">http://www.tribalogic.net/</A>
Open Source:
Mageia Contributor <A HREF="http://www.mageia.org/">http://www.mageia.org/</A>
PulseAudio Hacker <A HREF="http://www.pulseaudio.org/">http://www.pulseaudio.org/</A>
Trac Hacker <A HREF="http://trac.edgewall.org/">http://trac.edgewall.org/</A>
</PRE>
<!--endarticle-->
<HR>
<P><UL>
<!--threads-->
<LI>Previous message: <A HREF="015214.html">[Mageia-dev] [soft-commits] [4379] fix shutting down
</A></li>
<LI>Next message: <A HREF="015204.html">[Mageia-dev] freeze push: kadu 0.11.3
</A></li>
<LI> <B>Messages sorted by:</B>
<a href="date.html#15217">[ date ]</a>
<a href="thread.html#15217">[ thread ]</a>
<a href="subject.html#15217">[ subject ]</a>
<a href="author.html#15217">[ author ]</a>
</LI>
</UL>
<hr>
<a href="https://www.mageia.org/mailman/listinfo/mageia-dev">More information about the Mageia-dev
mailing list</a><br>
</body></html>
|