VirtualBox

source: vbox/trunk/src/VBox/Additions/linux/installer/vboxadd-x11.sh@ 61206

Last change on this file since 61206 was 60933, checked in by vboxsync, 9 years ago

bugref:8087: Additions/x11: support non-root X server: prevent the kernel module from loading if the X server version is less than 1.17.

  • Property svn:eol-style set to LF
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 20.7 KB
Line 
1#! /bin/sh
2#
3# Linux Additions X11 setup init script ($Revision: 60933 $)
4#
5
6#
7# Copyright (C) 2006-2012 Oracle Corporation
8#
9# This file is part of VirtualBox Open Source Edition (OSE), as
10# available from http://www.virtualbox.org. This file is free software;
11# you can redistribute it and/or modify it under the terms of the GNU
12# General Public License (GPL) as published by the Free Software
13# Foundation, in version 2 as it comes in the "COPYING" file of the
14# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16#
17
18
19# chkconfig: 35 30 70
20# description: VirtualBox Linux Additions kernel modules
21#
22### BEGIN INIT INFO
23# Provides: vboxadd-x11
24# Required-Start:
25# Required-Stop:
26# Default-Start:
27# Default-Stop:
28# Description: VirtualBox Linux Additions X11 setup
29### END INIT INFO
30
31PATH=$PATH:/bin:/sbin:/usr/sbin
32LOG="/var/log/vboxadd-install-x11.log"
33CONFIG_DIR="/var/lib/VBoxGuestAdditions"
34CONFIG="config"
35SCRIPTNAME=vboxadd-x11.sh
36MODPROBE=/sbin/modprobe
37
38if $MODPROBE -c 2>/dev/null | grep -q '^allow_unsupported_modules *0'; then
39 MODPROBE="$MODPROBE --allow-unsupported-modules"
40fi
41
42# Check architecture
43cpu=`uname -m`;
44case "$cpu" in
45 i[3456789]86|x86)
46 cpu="x86"
47 lib_candidates="/usr/lib/i386-linux-gnu /usr/lib /lib"
48 ;;
49 x86_64|amd64)
50 cpu="amd64"
51 lib_candidates="/usr/lib/x86_64-linux-gnu /usr/lib64 /usr/lib /lib64 /lib"
52 ;;
53esac
54for i in $lib_candidates; do
55 if test -d "$i/VBoxGuestAdditions"; then
56 LIB=$i
57 break
58 fi
59done
60
61# Find the version of X installed
62# The last of the three is for the X.org 6.7 included in Fedora Core 2
63xver=`X -version 2>&1`
64x_version=`echo "$xver" | sed -n 's/^X Window System Version \([0-9.]\+\)/\1/p'``echo "$xver" | sed -n 's/^XFree86 Version \([0-9.]\+\)/\1/p'``echo "$xver" | sed -n 's/^X Protocol Version 11, Revision 0, Release \([0-9.]\+\)/\1/p'``echo "$xver" | sed -n 's/^X.Org X Server \([0-9.]\+\)/\1/p'`
65x_version_short=`echo "${x_version}" | sed 's/\([0-9]*\.[0-9]*\)\..*/\1/'`
66# Version of Redhat or Fedora installed. Needed for setting up selinux policy.
67redhat_release=`cat /etc/redhat-release 2> /dev/null`
68# All the different possible locations for XFree86/X.Org configuration files
69# - how many of these have ever been used?
70x11conf_files="/etc/X11/xorg.conf /etc/X11/xorg.conf-4 /etc/X11/.xorg.conf \
71 /etc/xorg.conf /usr/etc/X11/xorg.conf-4 /usr/etc/X11/xorg.conf \
72 /usr/lib/X11/xorg.conf-4 /usr/lib/X11/xorg.conf /etc/X11/XF86Config-4 \
73 /etc/X11/XF86Config /etc/XF86Config /usr/X11R6/etc/X11/XF86Config-4 \
74 /usr/X11R6/etc/X11/XF86Config /usr/X11R6/lib/X11/XF86Config-4 \
75 /usr/X11R6/lib/X11/XF86Config"
76
77# Preamble for Gentoo
78if [ "`which $0`" = "/sbin/rc" ]; then
79 shift
80fi
81
82begin()
83{
84 test -n "${2}" && echo "${SCRIPTNAME}: ${1}."
85 logger -t "${SCRIPTNAME}" "${1}."
86}
87
88succ_msg()
89{
90 logger -t "${SCRIPTNAME}" "${1}."
91}
92
93fail_msg()
94{
95 echo "${SCRIPTNAME}: ${1}." >&2
96 logger -t "${SCRIPTNAME}" "${1}."
97}
98
99dev=/dev/vboxguest
100userdev=/dev/vboxuser
101owner=vboxadd
102group=1
103
104fail()
105{
106 echo "${SCRIPTNAME}: failed: ${1}." >&2
107 logger "${SCRIPTNAME}: ${1}."
108 exit 1
109}
110
111# Install an X11 desktop startup application. The application should be a shell script.
112# Its name should be purely alphanumeric and should start with a two digit number (preferably
113# 98 or thereabouts) to indicate its place in the Debian Xsession startup order.
114#
115# syntax: install_x11_startup_app app desktop service_name
116install_x11_startup_app() {
117 self="install_x11_startup_app"
118 app_src=$1
119 desktop_src=$2
120 service_name=$3
121 alt_command=$4
122 test -r "$app_src" ||
123 { echo >> $LOG "$self: no script given"; return 1; }
124 test -r "$desktop_src" ||
125 { echo >> $LOG "$self: no desktop file given"; return 1; }
126 test -n "$service_name" ||
127 { echo >> $LOG "$self: no service given"; return 1; }
128 test -n "$alt_command" ||
129 { echo >> $LOG "$self: no service given"; return 1; }
130 app_dest=`basename $app_src sh`
131 app_dest_sh=`basename $app_src sh`.sh
132 desktop_dest=`basename $desktop_src`
133 found=0
134 x11_autostart="/etc/xdg/autostart"
135 kde_autostart="/usr/share/autostart"
136 redhat_dir=/etc/X11/Xsession.d
137 mandriva_dir=/etc/X11/xinit.d
138 debian_dir=/etc/X11/xinit/xinitrc.d
139 if [ -d "$mandriva_dir" -a -w "$mandriva_dir" -a -x "$mandriva_dir" ]
140 then
141 install -m 0644 $app_src "$mandriva_dir/$app_dest"
142 found=1
143 fi
144 if [ -d "$x11_autostart" -a -w "$x11_autostart" -a -x "$x11_autostart" ]
145 then
146 install -m 0644 $desktop_src "$x11_autostart/$desktop_dest"
147 found=1
148 fi
149 if [ -d "$kde_autostart" -a -w "$kde_autostart" -a -x "$kde_autostart" ]
150 then
151 install -m 0644 $desktop_src "$kde_autostart/$desktop_dest"
152 found=1
153 fi
154 if [ -d "$redhat_dir" -a -w "$redhat_dir" -a -x "$redhat_dir" ]
155 then
156 install -m 0644 $app_src "$redhat_dir/$app_dest"
157 found=1
158 fi
159 if [ -d "$debian_dir" -a -w "$debian_dir" -a -x "$debian_dir" ]
160 then
161 install -m 0755 $app_src "$debian_dir/$app_dest_sh"
162 found=1
163 fi
164 if [ $found -eq 1 ]; then
165 return 0
166 fi
167 cat >> $LOG << EOF
168Could not set up the $service_name desktop service.
169To start it at log-in for a given user, add the command $alt_command
170to the file .xinitrc in their home directory.
171EOF
172 return 1
173}
174
175
176start()
177{
178 # Todo: check configuration and correct it if necessary
179 return 0
180}
181
182stop()
183{
184 return 0
185}
186
187restart()
188{
189 stop && start
190 return 0
191}
192
193setup()
194{
195 echo "VirtualBox Guest Additions installation, Window System and desktop setup" > $LOG
196 begin "Installing the Window System drivers"
197 lib_dir="$LIB/VBoxGuestAdditions"
198 share_dir="/usr/share/VBoxGuestAdditions"
199 test -x "$lib_dir" -a -x "$share_dir" ||
200 fail "Invalid Guest Additions configuration found"
201 # By default we want to configure X
202 dox11config="true"
203 # By default, we want to run our xorg.conf setup script
204 setupxorgconf="true"
205 # All but the oldest supported X servers can automatically set up the
206 # keyboard driver.
207 autokeyboard="--autoKeyboard"
208 # On more recent servers our kernel mouse driver will be used
209 # automatically
210 automouse="--autoMouse"
211 # We need to tell our xorg.conf hacking script whether /dev/psaux exists
212 nopsaux="--nopsaux"
213 case "`uname -r`" in 2.4.*)
214 test -c /dev/psaux && nopsaux="";;
215 esac
216 # Should we use the VMSVGA driver instead of VBoxVideo?
217 if grep 80eebeef /proc/bus/pci/devices > /dev/null; then
218 vmsvga=""
219 elif grep 15ad0405 /proc/bus/pci/devices > /dev/null; then
220 vmsvga="--vmsvga"
221 else
222 dox11config=""
223 fi
224 # The video driver to install for X.Org 6.9+
225 vboxvideo_src=
226 # The mouse driver to install for X.Org 6.9+
227 vboxmouse_src=
228 # The driver extension
229 driver_ext=".so"
230 # The configuration file we generate if no original was found but we need
231 # one.
232 main_cfg="/etc/X11/xorg.conf"
233
234 modules_dir=`X -showDefaultModulePath 2>&1` || modules_dir=
235 if [ -z "$modules_dir" ]; then
236 for dir in /usr/lib64/xorg/modules /usr/lib/xorg/modules /usr/X11R6/lib64/modules /usr/X11R6/lib/modules /usr/X11R6/lib/X11/modules; do
237 if [ -d $dir ]; then
238 modules_dir=$dir
239 break
240 fi
241 done
242 fi
243
244 test -z "$x_version" -o -z "$modules_dir" &&
245 {
246 echo
247 echo "Could not find the X.Org or XFree86 Window System, skipping."
248 exit 0
249 }
250
251 echo
252 # openSUSE 10.3 shipped X.Org 7.2 with X.Org Server 1.3, but didn't
253 # advertise the fact.
254 if grep -q '10\.3' /etc/SuSE-release 2>/dev/null; then
255 case $x_version in 7.2.*)
256 x_version=1.3.0;;
257 esac
258 fi
259 case $x_version in
260 1.*.99.* )
261 echo "Warning: unsupported pre-release version of X.Org Server installed. Not"
262 echo "installing the X.Org drivers."
263 dox11config=""
264 ;;
265 1.11.* )
266 xserver_version="X.Org Server 1.11"
267 vboxvideo_src=vboxvideo_drv_111.so
268 test "$system" = "redhat" && test -z "${vmsvga}" || setupxorgconf=""
269 ;;
270 1.10.* )
271 xserver_version="X.Org Server 1.10"
272 vboxvideo_src=vboxvideo_drv_110.so
273 test "$system" = "redhat" && test -z "${vmsvga}" || setupxorgconf=""
274 ;;
275 1.9.* )
276 xserver_version="X.Org Server 1.9"
277 vboxvideo_src=vboxvideo_drv_19.so
278 # Fedora 14 to 16 patched out vboxvideo detection
279 test "$system" = "redhat" && test -z "${vmsvga}" || setupxorgconf=""
280 ;;
281 1.8.* )
282 xserver_version="X.Org Server 1.8"
283 vboxvideo_src=vboxvideo_drv_18.so
284 # Fedora 13 shipped without vboxvideo detection
285 test "$system" = "redhat" && test -z "${vmsvga}" || setupxorgconf=""
286 ;;
287 1.7.* )
288 xserver_version="X.Org Server 1.7"
289 vboxvideo_src=vboxvideo_drv_17.so
290 setupxorgconf=""
291 ;;
292 1.6.* )
293 xserver_version="X.Org Server 1.6"
294 vboxvideo_src=vboxvideo_drv_16.so
295 vboxmouse_src=vboxmouse_drv_16.so
296 # SUSE SLE* with X.Org 1.6 does not do input autodetection;
297 # openSUSE does.
298 if grep -q -E '^SLE[^ ]' /etc/SuSE-brand 2>/dev/null; then
299 automouse=""
300 else
301 test "$system" = "suse" && setupxorgconf=""
302 fi
303 ;;
304 1.5.* )
305 xserver_version="X.Org Server 1.5"
306 vboxvideo_src=vboxvideo_drv_15.so
307 vboxmouse_src=vboxmouse_drv_15.so
308 # Historical note: SUSE with X.Org Server 1.5 disabled automatic
309 # mouse configuration and was handled specially. However since our
310 # kernel driver seems to have problems with X.Org Server 1.5 anyway
311 # we just create an X.Org configuration file and use the user space
312 # one generally, no longer just for SUSE.
313 automouse=""
314 ;;
315 1.4.* )
316 xserver_version="X.Org Server 1.4"
317 vboxvideo_src=vboxvideo_drv_14.so
318 vboxmouse_src=vboxmouse_drv_14.so
319 automouse=""
320 ;;
321 1.3.* )
322 # This was the first release which gave the server version number
323 # rather than the X11 release version when you did 'X -version'.
324 xserver_version="X.Org Server 1.3"
325 vboxvideo_src=vboxvideo_drv_13.so
326 vboxmouse_src=vboxmouse_drv_13.so
327 automouse=""
328 ;;
329 7.1.* | 7.2.* )
330 xserver_version="X.Org 7.1"
331 vboxvideo_src=vboxvideo_drv_71.so
332 vboxmouse_src=vboxmouse_drv_71.so
333 automouse=""
334 ;;
335 6.9.* | 7.0.* )
336 xserver_version="X.Org 6.9/7.0"
337 vboxvideo_src=vboxvideo_drv_70.so
338 vboxmouse_src=vboxmouse_drv_70.so
339 automouse=""
340 ;;
341 6.7* | 6.8.* | 4.2.* | 4.3.* )
342 # As the module binaries are the same we use one text for these
343 # four server versions.
344 xserver_version="XFree86 4.2/4.3 and X.Org 6.7/6.8"
345 driver_ext=.o
346 vboxvideo_src=vboxvideo_drv.o
347 vboxmouse_src=vboxmouse_drv.o
348 automouse=""
349 autokeyboard=""
350 case $x_version in
351 6.8.* )
352 autokeyboard="true"
353 ;;
354 4.2.* | 4.3.* )
355 main_cfg="/etc/X11/XF86Config"
356 ;;
357 esac
358 ;;
359 1.12.* | 1.13.* | 1.14.* | 1.15.* | 1.16.* | 1.17.* | 1.18.* )
360 xserver_version="X.Org Server ${x_version_short}"
361 vboxvideo_src=vboxvideo_drv_`echo ${x_version_short} | sed 's/\.//'`.so
362 setupxorgconf=""
363 test -f "${lib_dir}/${vboxvideo_src}" ||
364 {
365 echo "Warning: unknown version of the X Window System installed. Not installing"
366 echo "X Window System drivers."
367 dox11config=""
368 vboxvideo_src=""
369 }
370 ;;
371 * )
372 # For anything else, assume kernel drivers.
373 dox11config=""
374 ;;
375 esac
376 case "${x_version}" in
377 4.* | 6.* | 7.* | 1.?.* | 1.1[0-6].* )
378 echo "blacklist vboxvideo" > /etc/modprobe.d/blacklist-vboxvideo.conf
379 ;;
380 *)
381 if test -f /etc/modprobe.d/blacklist-vboxvideo.conf; then
382 rm -f /etc/modprobe.d/blacklist-vboxvideo.conf
383 ${MODPROBE} vboxvideo
384 fi
385 ;;
386 esac
387 test -n "${dox11config}" &&
388 begin "Installing $xserver_version modules"
389 case "$vboxvideo_src" in
390 ?*)
391 ln -s "$lib_dir/$vboxvideo_src" "$modules_dir/drivers/vboxvideo_drv$driver_ext.new" &&
392 mv "$modules_dir/drivers/vboxvideo_drv$driver_ext.new" "$modules_dir/drivers/vboxvideo_drv$driver_ext";;
393 *)
394 rm "$modules_dir/drivers/vboxvideo_drv$driver_ext" 2>/dev/null
395 esac
396 case "$vboxmouse_src" in
397 ?*)
398 ln -s "$lib_dir/$vboxmouse_src" "$modules_dir/input/vboxmouse_drv$driver_ext.new" &&
399 mv "$modules_dir/input/vboxmouse_drv$driver_ext.new" "$modules_dir/input/vboxmouse_drv$driver_ext";;
400 *)
401 rm "$modules_dir/input/vboxmouse_drv$driver_ext" 2>/dev/null
402 esac
403 succ_msg "$xserver_version modules installed"
404
405 if test -n "$dox11config"; then
406 begin "Setting up the Window System to use the Guest Additions"
407 # Certain Ubuntu/Debian versions use a special PCI-id file to identify
408 # video drivers. Some versions have the directory and don't use it.
409 # Those versions can autoload vboxvideo though, so we don't need to
410 # hack the configuration file for them.
411 test "$system" = "debian" -a -d /usr/share/xserver-xorg/pci &&
412 {
413 rm -f "/usr/share/xserver-xorg/pci/vboxvideo.ids"
414 ln -s "$share_dir/vboxvideo.ids" /usr/share/xserver-xorg/pci 2>/dev/null
415 test -n "$automouse" && setupxorgconf=""
416 }
417
418 # Do the XF86Config/xorg.conf hack for those versions that require it
419 configured=""
420 generated=""
421 if test -n "$setupxorgconf"; then
422 for i in $x11conf_files; do
423 if test -r "$i"; then
424 if grep -q "VirtualBox generated" "$i"; then
425 generated="$generated `printf "$i\n"`"
426 else
427 "$lib_dir/x11config.sh" $autokeyboard $automouse $nopsaux $vmsvga "$i"
428 fi
429 configured="true"
430 fi
431 # Timestamp, so that we can see if the config file is changed
432 # by someone else later
433 test -r "$i.vbox" && touch "$i.vbox"
434 done
435 # X.Org Server 1.5 and 1.6 can detect hardware they know, but they
436 # need a configuration file for VBoxVideo.
437 nobak_cfg="`expr "${main_cfg}" : '\([^.]*\)'`.vbox.nobak"
438 if test -z "$configured"; then
439 touch "$main_cfg"
440 "$lib_dir/x11config.sh" $autokeyboard $automouse $nopsaux $vmsvga --noBak "$main_cfg"
441 touch "${nobak_cfg}"
442 fi
443 fi
444 succ_msg "Window System set up to use the Guest Additions"
445 test -n "$generated" &&
446 cat << EOF
447The following X.Org/XFree86 configuration files were originally generated by
448the VirtualBox Guest Additions and were not modified:
449
450$generated
451
452EOF
453 cat << EOF
454You may need to restart the the Window System (or just restart the guest system)
455to enable the Guest Additions.
456
457EOF
458 fi
459
460 begin "Installing graphics libraries and desktop services components"
461 case "$redhat_release" in
462 # Install selinux policy for Fedora 7 and 8 to allow the X server to
463 # open device files
464 Fedora\ release\ 7* | Fedora\ release\ 8* )
465 semodule -i "$share_dir/vbox_x11.pp" > /dev/null 2>&1
466 ;;
467 # Similar for the accelerated graphics check on Fedora 15
468 Fedora\ release\ 15* )
469 semodule -i "$share_dir/vbox_accel.pp" > /dev/null 2>&1
470 ;;
471 esac
472
473 # Install selinux policy for Fedora 8 to allow the X server to
474 # open our drivers
475 case "$redhat_release" in
476 Fedora\ release\ 8* )
477 chcon -u system_u -t lib_t "$lib_dir"/*.so
478 ;;
479 esac
480
481 # Our logging code generates some glue code on 32-bit systems. At least F10
482 # needs a rule to allow this. Send all output to /dev/null in case this is
483 # completely irrelevant on the target system.
484 chcon -t unconfined_execmem_exec_t '/usr/bin/VBoxClient' > /dev/null 2>&1
485 semanage fcontext -a -t unconfined_execmem_exec_t '/usr/bin/VBoxClient' > /dev/null 2>&1
486
487 # And set up VBoxClient to start when the X session does
488 install_x11_startup_app "$lib_dir/98vboxadd-xclient" "$share_dir/vboxclient.desktop" VBoxClient VBoxClient-all ||
489 fail "See the log file $LOG for more information."
490 ln -s "$lib_dir/98vboxadd-xclient" /usr/bin/VBoxClient-all 2>/dev/null
491 succ_msg "Window system drivers installed"
492}
493
494cleanup()
495{
496 # Restore xorg.conf files as far as possible
497 # List of generated files which have been changed since we generated them
498 newer=""
499 # Are we dealing with a legacy information which didn't support
500 # uninstallation?
501 legacy=""
502 # Do any of the restored configuration files still reference our drivers?
503 failed=""
504 # Have we encountered a "nobak" configuration file which means that there
505 # is no original file to restore?
506 nobak=""
507 test -r "$CONFIG_DIR/$CONFIG" || legacy="true"
508 for main_cfg in "/etc/X11/xorg.conf" "/etc/X11/XF86Config"; do
509 nobak_cfg="`expr "${main_cfg}" : '\([^.]*\)'`.vbox.nobak"
510 if test -r "${nobak_cfg}"; then
511 test -r "${main_cfg}" &&
512 if test -n "${legacy}" -o ! "${nobak_cfg}" -ot "${main_cfg}"; then
513 rm -f "${nobak_cfg}" "${main_cfg}"
514 else
515 newer="${newer}`printf " ${main_cfg} (no original)\n"`"
516 fi
517 nobak="true"
518 fi
519 done
520 if test -z "${nobak}"; then
521 for i in $x11conf_files; do
522 if test -r "$i.vbox"; then
523 if test ! "$i" -nt "$i.vbox" -o -n "$legacy"; then
524 mv -f "$i.vbox" "$i"
525 grep -q -E 'vboxvideo|vboxmouse' "$i" &&
526 failed="$failed`printf " $i\n"`"
527 else
528 newer="$newer`printf " $i ($i.vbox)\n"`"
529 fi
530 fi
531 done
532 fi
533 test -n "$newer" && cat << EOF
534
535The following X.Org/XFree86 configuration files were not restored, as they may
536have been changed since they were generated by the VirtualBox Guest Additions.
537You may wish to restore these manually. The file name in brackets is the
538original version.
539
540$newer
541
542EOF
543 test -n "$failed" && cat << EOF
544
545The following X.Org/XFree86 configuration files were restored, but still
546contain references to the Guest Additions drivers. You may wish to check and
547possibly correct the restored configuration files to be sure that the server
548will continue to work after it is restarted.
549
550$failed
551
552EOF
553
554 # Remove X.Org drivers
555 modules_dir=`X -showDefaultModulePath 2>&1` || modules_dir=
556 if [ -z "$modules_dir" ]; then
557 for dir in /usr/lib64/xorg/modules /usr/lib/xorg/modules /usr/X11R6/lib64/modules /usr/X11R6/lib/modules /usr/X11R6/lib/X11/modules; do
558 if [ -d $dir ]; then
559 modules_dir=$dir
560 break
561 fi
562 done
563 fi
564 rm -f "$modules_dir/drivers/vboxvideo_drv"* 2>/dev/null
565 rm -f "$modules_dir/input/vboxmouse_drv"* 2>/dev/null
566
567 # Remove the link to vboxvideo_dri.so
568 for dir in /usr/lib/dri /usr/lib32/dri /usr/lib64/dri \
569 /usr/lib/xorg/modules/dri /usr/lib32/xorg/modules/dri \
570 /usr/lib64/xorg/modules/dri /usr/lib/i386-linux-gnu/dri \
571 /usr/lib/x86_64-linux-gnu/dri; do
572 if [ -d $dir ]; then
573 rm -f "$dir/vboxvideo_dri.so" 2>/dev/null
574 fi
575 done
576
577 # Remove VBoxClient autostart files
578 rm /etc/X11/Xsession.d/98vboxadd-xclient 2>/dev/null
579 rm /etc/X11/xinit.d/98vboxadd-xclient 2>/dev/null
580 rm /etc/X11/xinit/xinitrc.d/98vboxadd-xclient.sh 2>/dev/null
581 rm /etc/xdg/autostart/vboxclient.desktop 2>/dev/null
582 rm /usr/share/autostart/vboxclient.desktop 2>/dev/null
583 rm /usr/bin/VBoxClient-all 2>/dev/null
584
585 # Remove other files
586 rm /usr/share/xserver-xorg/pci/vboxvideo.ids 2>/dev/null
587}
588
589dmnstatus()
590{
591 /bin/true
592}
593
594case "$1" in
595start)
596 start
597 ;;
598stop)
599 stop
600 ;;
601restart)
602 restart
603 ;;
604setup)
605 setup
606 ;;
607cleanup)
608 cleanup
609 ;;
610status)
611 dmnstatus
612 ;;
613*)
614 echo "Usage: $0 {start|stop|restart|status}"
615 exit 1
616esac
617
618exit
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette