VirtualBox

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

Last change on this file since 50418 was 50312, checked in by vboxsync, 11 years ago

Additions/linux/installer: support VMSVGA.

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

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