blob: 966fa7012680b50e130fb386795408fefbca787b [file] [log] [blame]
Eric Andersenc9f20d92002-12-05 08:41:41 +00001#
2# For a description of the syntax of this configuration file,
3# see scripts/kbuild/config-language.txt.
4#
5
Mike Frysinger9ac178a2005-09-24 05:49:36 +00006menu "Shells"
Eric Andersenc9f20d92002-12-05 08:41:41 +00007
Denis Vlasenko7d219aa2006-10-05 10:17:08 +00008config ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +00009 bool "ash"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +020010 default y
Denys Vlasenko160b9ca2009-11-27 02:35:15 +010011 depends on !NOMMU
Eric Andersenc9f20d92002-12-05 08:41:41 +000012 help
Eric Andersenb287e2e2003-08-08 23:40:12 +000013 Tha 'ash' shell adds about 60k in the default configuration and is
14 the most complete and most pedantically correct shell included with
Bernhard Reutner-Fischer3e8669f2008-07-22 18:27:53 +000015 busybox. This shell is actually a derivative of the Debian 'dash'
Eric Andersen88c916b2003-10-22 09:58:56 +000016 shell (by Herbert Xu), which was created by porting the 'ash' shell
Eric Andersenc7bda1c2004-03-15 08:29:22 +000017 (written by Kenneth Almquist) from NetBSD.
Eric Andersenc9f20d92002-12-05 08:41:41 +000018
Denis Vlasenko92e13c22008-03-25 01:17:40 +000019config ASH_BASH_COMPAT
20 bool "bash-compatible extensions"
21 default y
22 depends on ASH
23 help
Bernhard Reutner-Fischer1dbc6432008-08-06 17:39:30 +000024 Enable bash-compatible extensions.
Denis Vlasenko92e13c22008-03-25 01:17:40 +000025
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000026config ASH_JOB_CONTROL
Paul Fox7ba12c62006-06-08 21:48:47 +000027 bool "Job control"
Eric Andersenc9f20d92002-12-05 08:41:41 +000028 default y
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000029 depends on ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +000030 help
Eric Andersene5642112003-07-14 19:37:08 +000031 Enable job control in the ash shell.
Eric Andersenc9f20d92002-12-05 08:41:41 +000032
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000033config ASH_ALIAS
Paul Fox7ba12c62006-06-08 21:48:47 +000034 bool "alias support"
Eric Andersenc9f20d92002-12-05 08:41:41 +000035 default y
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000036 depends on ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +000037 help
Eric Andersene5642112003-07-14 19:37:08 +000038 Enable alias support in the ash shell.
Eric Andersenc9f20d92002-12-05 08:41:41 +000039
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000040config ASH_GETOPTS
Paul Fox6ab03782006-06-08 21:37:26 +000041 bool "Builtin getopt to parse positional parameters"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +020042 default y
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000043 depends on ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +000044 help
Glenn L McGrath53090cd2004-09-24 09:09:44 +000045 Enable getopts builtin in the ash shell.
Eric Andersenc9f20d92002-12-05 08:41:41 +000046
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000047config ASH_BUILTIN_ECHO
Paul Fox6ab03782006-06-08 21:37:26 +000048 bool "Builtin version of 'echo'"
49 default y
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000050 depends on ASH
Paul Fox6ab03782006-06-08 21:37:26 +000051 help
Bernhard Reutner-Fischereb10e172007-01-29 23:56:13 +000052 Enable support for echo, builtin to ash.
Paul Fox6ab03782006-06-08 21:37:26 +000053
Denis Vlasenkocd2663f2008-06-01 22:36:39 +000054config ASH_BUILTIN_PRINTF
55 bool "Builtin version of 'printf'"
56 default y
57 depends on ASH
58 help
59 Enable support for printf, builtin to ash.
60
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000061config ASH_BUILTIN_TEST
Paul Fox6ab03782006-06-08 21:37:26 +000062 bool "Builtin version of 'test'"
63 default y
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000064 depends on ASH
Paul Fox6ab03782006-06-08 21:37:26 +000065 help
Bernhard Reutner-Fischereb10e172007-01-29 23:56:13 +000066 Enable support for test, builtin to ash.
Paul Fox6ab03782006-06-08 21:37:26 +000067
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000068config ASH_CMDCMD
Paul Fox7ba12c62006-06-08 21:48:47 +000069 bool "'command' command to override shell builtins"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +020070 default y
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000071 depends on ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +000072 help
Eric Andersen3857a182003-07-22 10:14:32 +000073 Enable support for the ash 'command' builtin, which allows
74 you to run the specified command with the specified arguments,
75 even when there is an ash builtin command with the same name.
Eric Andersenc9f20d92002-12-05 08:41:41 +000076
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000077config ASH_MAIL
Rob Landley2ec922e2006-04-13 23:22:16 +000078 bool "Check for new mail on interactive shells"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +020079 default n
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000080 depends on ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +000081 help
Eric Andersene5642112003-07-14 19:37:08 +000082 Enable "check for new mail" in the ash shell.
Eric Andersenc9f20d92002-12-05 08:41:41 +000083
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000084config ASH_OPTIMIZE_FOR_SIZE
Rob Landley2ec922e2006-04-13 23:22:16 +000085 bool "Optimize for size instead of speed"
Eric Andersenc9f20d92002-12-05 08:41:41 +000086 default y
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000087 depends on ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +000088 help
Rob Landley32251b42006-02-08 18:34:21 +000089 Compile ash for reduced size at the price of speed.
Eric Andersenc9f20d92002-12-05 08:41:41 +000090
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000091config ASH_RANDOM_SUPPORT
Denis Vlasenko18f2a792009-04-05 09:02:11 +000092 bool "Pseudorandom generator and $RANDOM variable"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +020093 default y
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000094 depends on ASH
Eric Andersen16767e22004-03-16 05:14:10 +000095 help
96 Enable pseudorandom generator and dynamic variable "$RANDOM".
97 Each read of "$RANDOM" will generate a new pseudorandom value.
98 You can reset the generator by using a specified start value.
Denis Vlasenko18f2a792009-04-05 09:02:11 +000099 After "unset RANDOM" the generator will switch off and this
Eric Andersen16767e22004-03-16 05:14:10 +0000100 variable will no longer have special treatment.
101
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000102config ASH_EXPAND_PRMT
Rob Landley2ec922e2006-04-13 23:22:16 +0000103 bool "Expand prompt string"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200104 default y
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000105 depends on ASH
"Vladimir N. Oleynik"bef14d72005-09-05 13:25:11 +0000106 help
Denis Vlasenko18f2a792009-04-05 09:02:11 +0000107 "PS#" may contain volatile content, such as backquote commands.
Rob Landley32251b42006-02-08 18:34:21 +0000108 This option recreates the prompt string from the environment
109 variable each time it is displayed.
"Vladimir N. Oleynik"bef14d72005-09-05 13:25:11 +0000110
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000111config HUSH
Eric Andersenc9f20d92002-12-05 08:41:41 +0000112 bool "hush"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200113 default y
Eric Andersenc9f20d92002-12-05 08:41:41 +0000114 help
Denis Vlasenko2b2183a2009-04-13 14:23:12 +0000115 hush is a small shell (22k). It handles the normal flow control
116 constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
117 case/esac. Redirections, here documents, $((arithmetic))
118 and functions are supported.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000119
Denis Vlasenko18f2a792009-04-05 09:02:11 +0000120 It will compile and work on no-mmu systems.
Denis Vlasenkobe709c22008-07-28 00:01:16 +0000121
Denis Vlasenko2b2183a2009-04-13 14:23:12 +0000122 It does not handle select, aliases, brace expansion,
123 tilde expansion, &>file and >&file redirection of stdout+stderr.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000124
Denys Vlasenko9ca656b2009-06-10 13:39:35 +0200125config HUSH_BASH_COMPAT
126 bool "bash-compatible extensions"
127 default y
128 depends on HUSH
129 help
130 Enable bash-compatible extensions.
131
Denis Vlasenko06810332007-05-21 23:30:54 +0000132config HUSH_HELP
133 bool "help builtin"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200134 default y
Denis Vlasenko42bffbf2007-06-08 08:02:53 +0000135 depends on HUSH
Denis Vlasenko06810332007-05-21 23:30:54 +0000136 help
137 Enable help builtin in hush. Code size + ~1 kbyte.
138
Denis Vlasenkob81b3df2007-04-28 16:48:04 +0000139config HUSH_INTERACTIVE
140 bool "Interactive mode"
141 default y
142 depends on HUSH
143 help
Denis Vlasenkoe3f2f892007-04-28 16:48:27 +0000144 Enable interactive mode (prompt and command editing).
145 Without this, hush simply reads and executes commands
Denys Vlasenkod4276892009-10-06 22:13:37 +0200146 from stdin just like a shell script from a file.
Denis Vlasenkoe3f2f892007-04-28 16:48:27 +0000147 No prompt, no PS1/PS2 magic shell variables.
148
149config HUSH_JOB
150 bool "Job control"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200151 default y
Denis Vlasenkoe3f2f892007-04-28 16:48:27 +0000152 depends on HUSH_INTERACTIVE
153 help
154 Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
155 command (not entire shell), fg/bg builtins work. Without this option,
156 "cmd &" still works by simply spawning a process and immediately
157 prompting for next command (or executing next command in a script),
158 but no separate process group is formed.
Denis Vlasenkob81b3df2007-04-28 16:48:04 +0000159
Denis Vlasenko14b5dd92007-05-20 21:51:38 +0000160config HUSH_TICK
161 bool "Process substitution"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200162 default y
Denis Vlasenko42bffbf2007-06-08 08:02:53 +0000163 depends on HUSH
Denis Vlasenko14b5dd92007-05-20 21:51:38 +0000164 help
165 Enable process substitution `command` and $(command) in hush.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000166
Denis Vlasenko06810332007-05-21 23:30:54 +0000167config HUSH_IF
168 bool "Support if/then/elif/else/fi"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200169 default y
Denis Vlasenko42bffbf2007-06-08 08:02:53 +0000170 depends on HUSH
Denis Vlasenko06810332007-05-21 23:30:54 +0000171 help
172 Enable if/then/elif/else/fi in hush.
173
174config HUSH_LOOPS
175 bool "Support for, while and until loops"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200176 default y
Denis Vlasenko42bffbf2007-06-08 08:02:53 +0000177 depends on HUSH
Denis Vlasenko06810332007-05-21 23:30:54 +0000178 help
179 Enable for, while and until loops in hush.
Denis Vlasenkobe709c22008-07-28 00:01:16 +0000180
181config HUSH_CASE
182 bool "Support case ... esac statement"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200183 default y
Denis Vlasenkobe709c22008-07-28 00:01:16 +0000184 depends on HUSH
185 help
186 Enable case ... esac statement in hush. +400 bytes.
Denis Vlasenko06810332007-05-21 23:30:54 +0000187
Denis Vlasenko2b2183a2009-04-13 14:23:12 +0000188config HUSH_FUNCTIONS
189 bool "Support funcname() { commands; } syntax"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200190 default y
Denis Vlasenko2b2183a2009-04-13 14:23:12 +0000191 depends on HUSH
192 help
193 Enable support for shell functions in hush. +800 bytes.
194
Denys Vlasenko295fef82009-06-03 12:47:26 +0200195config HUSH_LOCAL
196 bool "Support local builtin"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200197 default y
Denys Vlasenko295fef82009-06-03 12:47:26 +0200198 depends on HUSH_FUNCTIONS
199 help
200 Enable support for local variables in functions.
201
Denis Vlasenkoad4bd052009-04-20 22:04:21 +0000202config HUSH_EXPORT_N
203 bool "Support export '-n' option"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200204 default y
Denis Vlasenkoad4bd052009-04-20 22:04:21 +0000205 depends on HUSH
206 help
207 Enable support for export '-n' option in hush. It is a bash extension.
208
Denys Vlasenko69d1f452009-10-09 22:11:30 +0200209config HUSH_RANDOM_SUPPORT
210 bool "Pseudorandom generator and $RANDOM variable"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200211 default y
Denys Vlasenko69d1f452009-10-09 22:11:30 +0200212 depends on HUSH
213 help
214 Enable pseudorandom generator and dynamic variable "$RANDOM".
215 Each read of "$RANDOM" will generate a new pseudorandom value.
216
Denys Vlasenkoc8aae0b2010-06-06 22:14:58 +0200217
218choice
219 prompt "Choose which shell is aliased to 'sh' name"
220 default FEATURE_SH_IS_ASH
221 help
222 Choose which shell you want to be executed by 'sh' alias.
223 The ash shell is the most bash compatible and full featured one.
224
Denys Vlasenko121fb952010-06-07 13:34:34 +0200225# note: cannot use "select ASH" here, it breaks "make allnoconfig"
Denys Vlasenkoc8aae0b2010-06-06 22:14:58 +0200226config FEATURE_SH_IS_ASH
227 depends on ASH
228 bool "ash"
229 depends on !NOMMU
230
231config FEATURE_SH_IS_HUSH
232 depends on HUSH
233 bool "hush"
234
235config FEATURE_SH_IS_NONE
236 bool "none"
237
238endchoice
239
240choice
241 prompt "Choose which shell is aliased to 'bash' name"
242 default FEATURE_BASH_IS_NONE
243 help
244 Choose which shell you want to be executed by 'bash' alias.
245 The ash shell is the most bash compatible and full featured one.
246
247 Note that selecting this option does not switch on any bash
248 compatibility code. It merely makes it possible to install
249 /bin/bash (sym)link and run scripts which start with
250 #!/bin/bash line.
251
252 Many systems use it in scripts which use bash-specific features,
253 even simple ones like $RANDOM. Without this option, busybox
254 can't be used for running them because it won't recongnize
255 "bash" as a supported applet name.
256
257config FEATURE_BASH_IS_ASH
258 depends on ASH
259 bool "ash"
260 depends on !NOMMU
261
262config FEATURE_BASH_IS_HUSH
263 depends on HUSH
264 bool "hush"
265
266config FEATURE_BASH_IS_NONE
267 bool "none"
268
269endchoice
270
271
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000272config LASH
Mike Frysinger70a2c8d2009-03-28 12:12:58 +0000273 bool "lash (deprecated: aliased to hush)"
Eric Andersenc9f20d92002-12-05 08:41:41 +0000274 default n
Denis Vlasenko96702ca2007-11-23 23:28:55 +0000275 select HUSH
Eric Andersenc9f20d92002-12-05 08:41:41 +0000276 help
Denis Vlasenko96702ca2007-11-23 23:28:55 +0000277 lash is deprecated and will be removed, please migrate to hush.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000278
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000279config MSH
Mike Frysingerb975feb2009-03-29 00:52:41 +0000280 bool "msh (deprecated: please use hush)"
Eric Andersenc9f20d92002-12-05 08:41:41 +0000281 default n
Denys Vlasenko1cc4b132009-08-21 00:05:51 +0200282 select HUSH
Eric Andersenc9f20d92002-12-05 08:41:41 +0000283 help
Mike Frysingerb975feb2009-03-29 00:52:41 +0000284 msh is deprecated and will be removed, please migrate to hush.
285 If there is a feature msh has but hush does not, please let us know.
286
Denis Vlasenko2b2183a2009-04-13 14:23:12 +0000287# The minix shell (adds just 30k) is quite complete and handles things
288# like for/do/done, case/esac and all the things you expect a Bourne
289# shell to do. It is not always pedantically correct about Bourne
290# shell grammar (try running the shell testscript "tests/sh.testcases"
291# on it and compare vs bash) but for most things it works quite well.
292# It uses only vfork, so it can be used on uClinux systems.
293
294
Mike Frysinger98c52642009-04-02 10:02:37 +0000295config SH_MATH_SUPPORT
296 bool "POSIX math support"
297 default y
298 depends on ASH || HUSH
299 help
300 Enable math support in the shell via $((...)) syntax.
301
302config SH_MATH_SUPPORT_64
303 bool "Extend POSIX math support to 64 bit"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200304 default y
Mike Frysinger98c52642009-04-02 10:02:37 +0000305 depends on SH_MATH_SUPPORT
306 help
307 Enable 64-bit math support in the shell. This will make the shell
308 slightly larger, but will allow computation with very large numbers.
309 This is not in POSIX, so do not rely on this in portable code.
310
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000311config FEATURE_SH_EXTRA_QUIET
Glenn L McGrath3b251852004-01-03 12:07:32 +0000312 bool "Hide message on interactive shell startup"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200313 default y
314 depends on HUSH || ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +0000315 help
Glenn L McGrath3b251852004-01-03 12:07:32 +0000316 Remove the busybox introduction when starting a shell.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000317
Denis Vlasenko80d14be2007-04-10 23:03:30 +0000318config FEATURE_SH_STANDALONE
Eric Andersenc9f20d92002-12-05 08:41:41 +0000319 bool "Standalone shell"
320 default n
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200321 depends on (HUSH || ASH) && FEATURE_PREFER_APPLETS
Eric Andersenc9f20d92002-12-05 08:41:41 +0000322 help
Denis Vlasenko92c0b822007-05-08 17:27:17 +0000323 This option causes busybox shells to use busybox applets
Bernhard Reutner-Fischer3e8669f2008-07-22 18:27:53 +0000324 in preference to executables in the PATH whenever possible. For
Eric Andersen075dd812004-04-07 09:34:27 +0000325 example, entering the command 'ifconfig' into the shell would cause
Bernhard Reutner-Fischer3e8669f2008-07-22 18:27:53 +0000326 busybox to use the ifconfig busybox applet. Specifying the fully
Eric Andersen075dd812004-04-07 09:34:27 +0000327 qualified executable name, such as '/sbin/ifconfig' will still
Bernhard Reutner-Fischer3e8669f2008-07-22 18:27:53 +0000328 execute the /sbin/ifconfig executable on the filesystem. This option
Rob Landley06ec8cf2006-03-03 19:02:50 +0000329 is generally used when creating a statically linked version of busybox
Eric Andersen075dd812004-04-07 09:34:27 +0000330 for use as a rescue shell, in the event that you screw up your system.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000331
Denis Vlasenko92c0b822007-05-08 17:27:17 +0000332 This is implemented by re-execing /proc/self/exe (typically)
333 with right parameters. Some selected applets ("NOFORK" applets)
334 can even be executed without creating new process.
335 Instead, busybox will call <applet>_main() internally.
Paul Fox6ab03782006-06-08 21:37:26 +0000336
Denis Vlasenko92c0b822007-05-08 17:27:17 +0000337 However, this causes problems in chroot jails without mounted /proc
338 and with ps/top (command name can be shown as 'exe' for applets
339 started this way).
340# untrue?
341# Note that this will *also* cause applets to take precedence
Bernhard Reutner-Fischer3e8669f2008-07-22 18:27:53 +0000342# over shell builtins of the same name. So turning this on will
Denis Vlasenko92c0b822007-05-08 17:27:17 +0000343# eliminate any performance gained by turning on the builtin "echo"
344# and "test" commands in ash.
345# untrue?
346# Note that when using this option, the shell will attempt to directly
Bernhard Reutner-Fischer3e8669f2008-07-22 18:27:53 +0000347# run '/bin/busybox'. If you do not have the busybox binary sitting in
Denis Vlasenko92c0b822007-05-08 17:27:17 +0000348# that exact location with that exact name, this option will not work at
349# all.
Eric Andersen6f8542b2004-09-24 01:25:39 +0000350
Denis Vlasenko9bc80d72008-04-12 20:07:53 +0000351config FEATURE_SH_NOFORK
352 bool "Run 'nofork' applets directly"
353 default n
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200354 depends on (HUSH || ASH) && FEATURE_PREFER_APPLETS
Denis Vlasenko9bc80d72008-04-12 20:07:53 +0000355 help
356 This option causes busybox shells [currently only ash]
357 to not execute typical fork/exec/wait sequence, but call <applet>_main
358 directly, if possible. (Sometimes it is not possible: for example,
359 this is not possible in pipes).
360
361 This will be done only for some applets (those which are marked
362 NOFORK in include/applets.h).
363
364 This may significantly speed up some shell scripts.
365
366 This feature is relatively new. Use with care.
367
Denis Vlasenko6d709972007-05-18 09:45:36 +0000368config CTTYHACK
369 bool "cttyhack"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200370 default y
Denis Vlasenko6d709972007-05-18 09:45:36 +0000371 help
372 One common problem reported on the mailing list is "can't access tty;
373 job control turned off" error message which typically appears when
374 one tries to use shell with stdin/stdout opened to /dev/console.
375 This device is special - it cannot be a controlling tty.
376
377 Proper solution is to use correct device instead of /dev/console.
378
379 cttyhack provides "quick and dirty" solution to this problem.
380 It analyzes stdin with various ioctls, trying to determine whether
381 it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
382 If it detects one, it closes stdin/out/err and reopens that device.
Denys Vlasenkob367bb22010-05-15 20:43:07 +0200383 Then it executes given program. Opening the device will make
384 that device a controlling tty. This may require cttyhack
385 to be a session leader.
386
387 Example for /etc/inittab (for busybox init):
Denis Vlasenko6d709972007-05-18 09:45:36 +0000388
389 ::respawn:/bin/cttyhack /bin/sh
390
Denys Vlasenkob367bb22010-05-15 20:43:07 +0200391 Giving controlling tty to shell running with PID 1:
392
393 $ exec cttyhack sh
394
Denys Vlasenkoef215552010-05-17 09:55:13 +0200395 Starting an interactive shell from boot shell script:
Denys Vlasenkob367bb22010-05-15 20:43:07 +0200396
397 setsid cttyhack sh
398
Eric Andersenc9f20d92002-12-05 08:41:41 +0000399endmenu