LinuxQuestions.org
Visit Jeremy's Blog.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Software
User Name
Password
Linux - Software This forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.

Notices

Reply
 
Search this Thread
Old 07-28-2003, 02:12 AM   #1
Cray2
LQ Newbie
 
Registered: Jul 2003
Location: Norway
Distribution: Red Hat 9.0 Ximian Desktop2
Posts: 16

Rep: Reputation: 0
Is there any shutdown/logout logs?


Hello all, I'm still new to Linux and this forum has helped me a lot. I usually find everything I need whit the help of the search button, so this is the first time I had to post to get some help .

I'm running Red Hat 9.0 and Ximian Desktop2 whit all patches awailible trough up2date and red carpet and everything was running 100%.

But liking to play a game now an then, I installed the VMWare 4 workstation eval version to be able to install NWN and the new exp pack (using winXP as guest OS, it works 110% btw ), I installed NAT on my VM to get Internet access, and samba support to get access to local files.

Everything is working 100% until I try to logout, reboot or shutdown, its shutting down every open application and looks like its going to logout, but at the black screen where its going to switch between X and the login manager it just hangs, I have tried to let it sort things out for it self, but after a couple of hours and no response I gave up.

So my question is, is there any logs who can trace the problem, and will these logs be written as X doesn't complete its shutdown and I have to power off or reset the pc manually every time? Or even better, have anyone experienced the same problem and have a quick solution for me?

I Have searched the VMWare support docs, but no luck so far...
 
Old 07-28-2003, 04:07 AM   #2
Bebo
Member
 
Registered: Jul 2003
Location: Göteborg
Distribution: Arch Linux (current)
Posts: 553

Rep: Reputation: 30
Hello,

Firstly, maybe you know this, maybe not: if the X server crashes, try hitting ctrl+alt+F1 or any F-key up to F6. Then you might be able to login and reboot in a kind way with "shutdown -r now". But, maybe you do this all the time

Anyway, logs... Try issuing "dmesg" first and see if there is something useful. Otherwise the whole lot of the logs - at least the important ones - are in the /var/log directory. The X servers own log is /var/log/XFree86.0.log. There it might say what happened. Otherwise look in /var/log/messages, /var/log/syslog, and, ah you see the dmesg there as well. In the /var/log/kernel and /var/log/daemons directories are some more logs.
 
Old 07-28-2003, 05:06 AM   #3
Cray2
LQ Newbie
 
Registered: Jul 2003
Location: Norway
Distribution: Red Hat 9.0 Ximian Desktop2
Posts: 16

Original Poster
Rep: Reputation: 0
Hi Bebo, thanks for your reply.

I had no luck hitting ctrl+alt+F1<->F6 noting at all happens, dmesg gives me no errors (in my eyes ) except a bunch of messages that the system cant access the floppy drive...

As to all the other logs in the var dir and down, Ive already looked trough those, but all I see is startup logs (maby I'm missing something), and on startup and system use everything work flawless, maby there is a script or prog I can use to dump the shutdown info into a text file???

Another thing, I do have an external temp monitor on my cpu, and by the looks of it, when the hang occur cpu activity drops to 0% so it seems that everything just stops?
 
Old 07-28-2003, 05:10 AM   #4
MasterC
Guru
 
Registered: Mar 2002
Location: Salt Lake City, UT - USA
Distribution: Gentoo ; LFS ; Kubuntu
Posts: 12,612

Rep: Reputation: 64
The CPU dropping to 0 would (to me) characterize a good hang

The log file (on my system) that contains info about startup/shutdown info would be /var/log/messages but you could also look at /var/log/syslog It really depends on the type of system logger your distro uses though.

Can you post up the contents of /var/log Just, as root type:
ls /var/log
Into a terminal and post up the results. To copy and paste in linux:
highlight
Put your cursor where you want to paste, press the middle button. That's it. If you don't have a middle button, press both side buttons down.

Cool
 
Old 07-28-2003, 05:23 AM   #5
Cray2
LQ Newbie
 
Registered: Jul 2003
Location: Norway
Distribution: Red Hat 9.0 Ximian Desktop2
Posts: 16

Original Poster
Rep: Reputation: 0
This is what I got.

ls /var/log
boot.log ksyms.1 lastlog scrollkeeper.log XFree86.0.log
cron ksyms.2 maillog secure XFree86.0.log.old
cups ksyms.3 messages spooler XFree86.1.log
dmesg ksyms.4 nvidia-installer.log up2date
gdm ksyms.5 rcd vbox
ksyms.0 ksyms.6 rpmpkgs wtmp
 
Old 07-28-2003, 05:43 AM   #6
Cray2
LQ Newbie
 
Registered: Jul 2003
Location: Norway
Distribution: Red Hat 9.0 Ximian Desktop2
Posts: 16

Original Poster
Rep: Reputation: 0
hmm, this is what messages gives me after trying to reboot???

Jul 28 12:36:10 Cray2 shutdown: shutting down for system reboot
Jul 28 12:36:11 Cray2 init: Switching to runlevel: 6
Jul 28 12:36:11 Cray2 gdm(pam_unix)[1783]: session closed for user kim
Jul 28 12:36:11 Cray2 gconfd (kim-1892): Received signal 15, shutting down cleanly
Jul 28 12:36:11 Cray2 gconfd (kim-1892): Exiting

And then it just hangs there...

Next msg is successful start of the same log when the pc is booting up again
 
Old 07-28-2003, 05:49 AM   #7
MasterC
Guru
 
Registered: Mar 2002
Location: Salt Lake City, UT - USA
Distribution: Gentoo ; LFS ; Kubuntu
Posts: 12,612

Rep: Reputation: 64
Hmm... Are you sure it's hanging and not just finished stopping? Sometimes (There's a lot of threads on it) there's just a problem with the finaly shutting down of the power, but everything else has been properly stopped and manual poweroff is required (do a search for apm shutdown halt and poweroff you'll see what I mean ).

You could also look at your runlevel 6 script(s) and see if there is supposed to be something that comes next:
/etc/rc.d/rc.6 OR /etc/rc.d/rc6.d (sometimes different from those, but I think that's the most common?).

Cool
 
Old 07-28-2003, 05:50 AM   #8
Cray2
LQ Newbie
 
Registered: Jul 2003
Location: Norway
Distribution: Red Hat 9.0 Ximian Desktop2
Posts: 16

Original Poster
Rep: Reputation: 0
This is what supposed to come next in line, its from yesterday, before installing VMWare...

Jul 27 12:06:12 Cray2 rcd[1383]: Received SIGTERM... Shutting down.
 
Old 07-28-2003, 06:04 AM   #9
Cray2
LQ Newbie
 
Registered: Jul 2003
Location: Norway
Distribution: Red Hat 9.0 Ximian Desktop2
Posts: 16

Original Poster
Rep: Reputation: 0
This is the complete shutdown from yesterday.

Jul 27 12:06:08 Cray2 shutdown: shutting down for system reboot
Jul 27 12:06:11 Cray2 init: Switching to runlevel: 6
Jul 27 12:06:11 Cray2 gdm(pam_unix)[1440]: session closed for user kim
Jul 27 12:06:11 Cray2 gconfd (kim-1499): Received signal 15, shutting down cleanly
Jul 27 12:06:11 Cray2 gconfd (kim-1499): Exiting
Jul 27 12:06:12 Cray2 rcd[1383]: Received SIGTERM... Shutting down.
Jul 27 12:06:12 Cray2 rcd[1383]: Shutting down local server
Jul 27 12:06:12 Cray2 rcd[1383]: Shutting down HTTP server
Jul 27 12:06:12 Cray2 rcd: rcd shutdown succeeded
Jul 27 12:06:12 Cray2 rhnsd[1582]: Exiting
Jul 27 12:06:12 Cray2 rhnsd: rhnsd shutdown succeeded
Jul 27 12:06:12 Cray2 atd: atd shutdown succeeded
Jul 27 12:06:12 Cray2 rc: Stopping keytable: succeeded
Jul 27 12:06:12 Cray2 cups: cupsd shutdown succeeded
Jul 27 12:06:12 Cray2 xfs[1356]: terminating
Jul 27 12:06:13 Cray2 xfs: xfs shutdown succeeded
Jul 27 12:06:13 Cray2 gpm: gpm shutdown succeeded
Jul 27 12:06:13 Cray2 sshd: sshd -TERM succeeded
Jul 27 12:06:13 Cray2 sendmail: sendmail shutdown succeeded
Jul 27 12:06:13 Cray2 sendmail: sm-client shutdown succeeded
Jul 27 12:06:13 Cray2 xinetd[1186]: Sending signal 9 to sgi_fam server 1505
Jul 27 12:06:13 Cray2 xinetd[1186]: Exiting...
Jul 27 12:06:13 Cray2 xinetd: xinetd shutdown succeeded
Jul 27 12:06:13 Cray2 crond: crond shutdown succeeded
Jul 27 12:06:13 Cray2 apmd[1135]: Exiting
Jul 27 12:06:13 Cray2 apmd: apmd shutdown succeeded
Jul 27 12:06:14 Cray2 ntpd: succeeded
Jul 27 12:06:14 Cray2 ntpd: succeeded
Jul 27 12:06:14 Cray2 ntpd[1205]: ntpd exiting on signal 15
Jul 27 12:06:14 Cray2 ntpd: ntpd shutdown succeeded
Jul 27 12:06:14 Cray2 dd: 1+0 records in
Jul 27 12:06:14 Cray2 dd: 1+0 records out
Jul 27 12:06:14 Cray2 random: Saving random seed: succeeded
Jul 27 12:06:14 Cray2 rpc.statd[1069]: Caught signal 15, un-registering and exiting.
Jul 27 12:06:14 Cray2 nfslock: rpc.statd shutdown succeeded
Jul 27 12:06:14 Cray2 portmap: portmap shutdown succeeded
Jul 27 12:06:14 Cray2 kernel: Kernel logging (proc) stopped.
Jul 27 12:06:14 Cray2 kernel: Kernel log daemon terminating.
Jul 27 12:06:15 Cray2 syslog: klogd shutdown succeeded
Jul 27 12:06:15 Cray2 exiting on signal 15

And after testing I realized I couldnt even turn the numlock light on/off :/
 
Old 07-28-2003, 06:09 AM   #10
MasterC
Guru
 
Registered: Mar 2002
Location: Salt Lake City, UT - USA
Distribution: Gentoo ; LFS ; Kubuntu
Posts: 12,612

Rep: Reputation: 64
Ya know when VMWare installs it definitely does something with the rc files, I remember when I tinkered with it for a bit that it was complaining (in slack) that I didn't have the SysV (RedHat has it) style init scripts so I had to create them. It may have very well overwritten or otherwise stopped a file from executing in your rc level (rc6).

See if you can post up the contents of that directory if it exists:
ls -l /etc/rc.d/rc6.d

And just an OT/OnTopic mention:
You can natively play NWN in linux, I do

Cool
 
Old 07-28-2003, 06:27 AM   #11
Cray2
LQ Newbie
 
Registered: Jul 2003
Location: Norway
Distribution: Red Hat 9.0 Ximian Desktop2
Posts: 16

Original Poster
Rep: Reputation: 0
Heres what I got.

ls -l /etc/rc.d/rc6.d
total 0
lrwxrwxrwx 1 root root 13 Jul 27 10:53 K03rcd -> ../init.d/rcd
lrwxrwxrwx 1 root root 15 Jul 27 08:16 K03rhnsd -> ../init.d/rh nsd
lrwxrwxrwx 1 root root 17 Jul 27 08:16 K05anacron -> ../init.d/ anacron
lrwxrwxrwx 1 root root 13 Jul 27 08:14 K05atd -> ../init.d/atd
lrwxrwxrwx 1 root root 18 Jul 27 08:14 K05keytable -> ../init.d /keytable
lrwxrwxrwx 1 root root 19 Jul 27 08:14 K05saslauthd -> ../init. d/saslauthd
lrwxrwxrwx 1 root root 23 Jul 27 15:43 K08vmware -> /etc/rc.d/i nit.d/vmware
lrwxrwxrwx 1 root root 14 Jul 27 08:17 K10cups -> ../init.d/cup s
lrwxrwxrwx 1 root root 15 Jul 28 10:47 K10lircd -> ../init.d/li rcd
lrwxrwxrwx 1 root root 13 Jul 27 08:17 K10xfs -> ../init.d/xfs
lrwxrwxrwx 1 root root 13 Jul 27 08:15 K15gpm -> ../init.d/gpm
lrwxrwxrwx 1 root root 13 Jul 27 08:15 K20nfs -> ../init.d/nfs
lrwxrwxrwx 1 root root 14 Jul 27 08:15 K24irda -> ../init.d/ird a
lrwxrwxrwx 1 root root 14 Jul 27 08:15 K25sshd -> ../init.d/ssh d
lrwxrwxrwx 1 root root 18 Jul 27 08:15 K30sendmail -> ../init.d /sendmail
lrwxrwxrwx 1 root root 17 Jul 27 08:16 K35winbind -> ../init.d/ winbind
lrwxrwxrwx 1 root root 20 Jul 27 08:14 K44rawdevices -> ../init .d/rawdevices
lrwxrwxrwx 1 root root 15 Jul 27 08:23 K50snmpd -> ../init.d/sn mpd
lrwxrwxrwx 1 root root 19 Jul 27 08:23 K50snmptrapd -> ../init. d/snmptrapd
lrwxrwxrwx 1 root root 16 Jul 27 08:17 K50xinetd -> ../init.d/x inetd
lrwxrwxrwx 1 root root 15 Jul 27 08:16 K60crond -> ../init.d/cr ond
lrwxrwxrwx 1 root root 16 Jul 27 08:15 K72autofs -> ../init.d/a utofs
lrwxrwxrwx 1 root root 14 Jul 27 08:14 K74apmd -> ../init.d/apm d
lrwxrwxrwx 1 root root 14 Jul 27 11:35 K74nscd -> ../init.d/nsc d
lrwxrwxrwx 1 root root 14 Jul 27 08:18 K74ntpd -> ../init.d/ntp d
lrwxrwxrwx 1 root root 15 Jul 27 08:14 K75netfs -> ../init.d/ne tfs
lrwxrwxrwx 1 root root 16 Jul 27 08:14 K80random -> ../init.d/r andom
lrwxrwxrwx 1 root root 17 Jul 27 08:15 K86nfslock -> ../init.d/ nfslock
lrwxrwxrwx 1 root root 17 Jul 27 08:15 K87portmap -> ../init.d/ portmap
lrwxrwxrwx 1 root root 16 Jul 27 08:14 K88syslog -> ../init.d/s yslog
lrwxrwxrwx 1 root root 17 Jul 27 08:14 K90network -> ../init.d/ network
lrwxrwxrwx 1 root root 14 Jul 27 08:15 K91isdn -> ../init.d/isd n
lrwxrwxrwx 1 root root 18 Jul 27 08:15 K92iptables -> ../init.d /iptables
lrwxrwxrwx 1 root root 19 Jul 27 08:20 K95firstboot -> ../init. d/firstboot
lrwxrwxrwx 1 root root 15 Jul 27 08:14 K95kudzu -> ../init.d/ku dzu
lrwxrwxrwx 1 root root 16 Jul 27 08:14 K96pcmcia -> ../init.d/p cmcia
lrwxrwxrwx 1 root root 17 Jul 27 08:14 S00killall -> ../init.d/ killall
lrwxrwxrwx 1 root root 14 Jul 27 08:14 S01reboot -> ../init.d/h alt

Hehe, I'm playing NWN natively in linux after running fix-install , I only needed to install it in windows to overcome the install shield issues and do the patching.

But as a bonus running VMWare, I'm able to log on to my bank to pay my bills , they only support MSIE and the MS version of Java .

but now I'm leaning toward uninstalling VMWare as a cheap fix , since the whole purpose of installing it was to get an installed and patched NWN to play in linux, and that I already have accomplished

BTW, thanks a lot for trying to help a newbie MasterC
 
Old 07-28-2003, 06:37 AM   #12
MasterC
Guru
 
Registered: Mar 2002
Location: Salt Lake City, UT - USA
Distribution: Gentoo ; LFS ; Kubuntu
Posts: 12,612

Rep: Reputation: 64
Cool, yeah love those 'ez' fixes

If you want I'll stick with you and we can continue to attempt to troubleshoot this thing out?

Can you post up the contents of the vmware script:
less /etc/rc.d/init.d/vmware

Cool
 
Old 07-28-2003, 06:51 AM   #13
Cray2
LQ Newbie
 
Registered: Jul 2003
Location: Norway
Distribution: Red Hat 9.0 Ximian Desktop2
Posts: 16

Original Poster
Rep: Reputation: 0
Its always fun getting stuff to work so if you don't mind, lets take this a step further .

#!/bin/sh
#
# Copyright 1998 VMware, Inc. All rights reserved.
#
# This script manages the services needed to run VMware software

# Basic support for IRIX style chkconfig
# chkconfig: 3 90 08
# description: Manages the services needed to run VMware software

# Basic support for the Linux Standard Base Specification 1.0.0 (to be used by
# insserv for exemple)
### BEGIN INIT INFO
# Provides: VMware
# Required-Start: $network $syslog
# Required-Stop:
# Default-Start: 3 5
# Default-Stop:
# Description: Manages the services needed to run VMware software
### END INIT INFO

# BEGINNING_OF_TMPDIR_DOT_SH
#!/bin/sh

# Create a temporary directory
#
# They are a lot of small utility programs to create temporary files in a
# secure way, but none of them is standard. So I wrote this --hpreg
make_tmp_dir() {
local dirname="$1" # OUT
local prefix="$2" # IN
local tmp
local serial
local loop

tmp="${TMPDIR:-/tmp}"

# Don't overwrite existing user data
# -> Create a directory with a name that didn't exist before
#
# This may never succeed (if we are racing with a malicious process), but at
# least it is secure
serial=0
loop='yes'
while [ "$loop" = 'yes' ]; do
# Check the validity of the temporary directory. We do this in the loop
# because it can change over time
if [ ! -d "$tmp" ]; then
echo 'Error: "'"$tmp"'" is not a directory.'
echo
exit 1
fi
if [ ! -w "$tmp" -o ! -x "$tmp" ]; then
echo 'Error: "'"$tmp"'" should be writable and executable.'
echo
exit 1
fi

# Be secure
# -> Don't give write access to other users (so that they can not use this
# directory to launch a symlink attack)
if mkdir -m 0755 "$tmp"'/'"$prefix$serial" >/dev/null 2>&1; then
loop='no'
else
serial=`expr "$serial" + 1`
if [ "`expr "$serial" % 200`" = '0' ]; then
echo 'Warning: The "'"$tmp"'" directory may be under attack.'
echo
fi
fi
done

eval "$dirname"'="$tmp"'"'"'/'"'"'"$prefix$serial"'
}

# END_OF_TMPDIR_DOT_SH

vmware_etc_dir=/etc/vmware

#
# Make the old installer aware of the new installer.sh mechanism.
# Kludge time
#

if [ "$1" = "stop" ]; then
ppid=`grep '^PPid:' /proc/"$$"/status | cut -f 2`
if [ "`grep '^Name:' /proc/"$ppid"/status | cut -f 2`" = 'install.pl' ]; then
# The old installer called this script
vmware_installer="$vmware_etc_dir"/installer.sh
if [ -x "$vmware_installer" ]; then
echo 'A previous installation of VMware software has been detected.'
echo

echo 'The previous installation was made by the '"`"$vmware_installer" kind`"' installer,'
echo 'which is more recent than this installer.'
echo 'This means that your are trying to downgrade or remove VMware software.'
echo -n 'Do you really want to do this? (yes/no) [n] '
read answer
echo
case "$answer" in
y|Y|yes|Yes|YES)
make_tmp_dir 'tmpdir' 'vmware-installer'
"$vmware_installer" convertdb old "$tmpdir"'/prev_db.tar.gz'
"$vmware_installer" uninstall
if [ ! "$?" -eq 0 ]; then
rm -rf "$tmpdir"
echo
echo 'Failure'
echo
exit 1
fi
made_dir='0'
if [ ! -d '/etc/vmware' ]; then
mkdir -m 0755 '/etc/vmware'
made_dir='1'
fi
tar -C / -xzopf "$tmpdir"'/prev_db.tar.gz'
rm -rf "$tmpdir"
if [ "$made_dir" = '1' ]; then
echo 'directory /etc/vmware' >> '/etc/vmware/locations'
fi

exit 0
;;

*)
# Prevent the display of the old installer's error message
kill "$ppid"
exit 1
;;
esac
else
echo 'Error: Unable to find the previous installer object '"$vmware_installer"'.'
echo

# Exit with 0 otherwise the user will never be able to re-install
exit 0
fi
fi
fi

#
# From now on, this is a normal startup script. I swear.
#

# Since this script is installed, our main database should be installed too and
# should contain the basic information
vmware_db="$vmware_etc_dir"/locations
if [ ! -r "$vmware_db" ]; then
echo 'Warning: Unable to find '"`vmware_product_name`""'"'s main database '"$vmware_db"'.'
echo

exit 1
fi

# BEGINNING_OF_DB_DOT_SH
#!/bin/sh

#
# Manage an installer database
#

# Add an answer to a database in memory
db_answer_add() {
local dbvar="$1" # IN/OUT
local id="$2" # IN
local value="$3" # IN
local answers
local i

eval "$dbvar"'_answer_'"$id"'="$value"'

eval 'answers="$'"$dbvar"'_answers"'
# There is no double quote around $answers on purpose
for i in $answers; do
if [ "$i" = "$id" ]; then
return
fi
done
answers="$answers"' '"$id"
eval "$dbvar"'_answers="$answers"'
}

# Remove an answer from a database in memory
db_answer_remove() {
local dbvar="$1" # IN/OUT
local id="$2" # IN
local new_answers
local answers
local i

eval 'unset '"$dbvar"'_answer_'"$id"

new_answers=''
eval 'answers="$'"$dbvar"'_answers"'
# There is no double quote around $answers on purpose
for i in $answers; do
if [ "$i" != "$id" ]; then
new_answers="$new_answers"' '"$i"
fi
done
eval "$dbvar"'_answers="$new_answers"'
}

# Load all answers from a database on stdin to memory (<dbvar>_answer_*
# variables)
db_load_from_stdin() {
local dbvar="$1" # OUT

eval "$dbvar"'_answers=""'
while read -r action p1 p2; do
if [ "$action" = 'answer' ]; then
db_answer_add "$dbvar" "$p1" "$p2"
elif [ "$action" = 'remove_answer' ]; then
db_answer_remove "$dbvar" "$p1"
fi
done
}

# Load all answers from a database on disk to memory (<dbvar>_answer_*
# variables)
db_load() {
local dbvar="$1" # OUT
local dbfile="$2" # IN

db_load_from_stdin "$dbvar" < "$dbfile"
}

# Iterate through all answers in a database in memory, calling <func> with
# id/value pairs and the remaining arguments to this function
db_iterate() {
local dbvar="$1" # IN
local func="$2" # IN
shift 2
local answers
local i
local value

eval 'answers="$'"$dbvar"'_answers"'
# There is no double quote around $answers on purpose
for i in $answers; do
eval 'value="$'"$dbvar"'_answer_'"$i"'"'
"$func" "$i" "$value" "$@"
done
}

# If it exists in memory, remove an answer from a database (disk and memory)
db_remove_answer() {
local dbvar="$1" # IN/OUT
local dbfile="$2" # IN
local id="$3" # IN
local answers
local i

eval 'answers="$'"$dbvar"'_answers"'
# There is no double quote around $answers on purpose
for i in $answers; do
if [ "$i" = "$id" ]; then
echo 'remove_answer '"$id" >> "$dbfile"
db_answer_remove "$dbvar" "$id"
return
fi
done
}

# Add an answer to a database (disk and memory)
db_add_answer() {
local dbvar="$1" # IN/OUT
local dbfile="$2" # IN
local id="$3" # IN
local value="$4" # IN

db_remove_answer "$dbvar" "$dbfile" "$id"
echo 'answer '"$id"' '"$value" >> "$dbfile"
db_answer_add "$dbvar" "$id" "$value"
}

# Add a file to a database on disk
# 'file' is the file to put in the database (it may not exist on the disk)
# 'tsfile' is the file to get the timestamp from, '' if no timestamp
db_add_file() {
local dbfile="$1" # IN
local file="$2" # IN
local tsfile="$3" # IN
local date

if [ "$tsfile" = '' ]; then
echo 'file '"$file" >> "$dbfile"
else
date=`date -r "$tsfile" '+%s' 2> /dev/null`
if [ "$date" != '' ]; then
date=' '"$date"
fi
echo 'file '"$file$date" >> "$dbfile"
fi
}

# Add a directory to a database on disk
db_add_dir() {
local dbfile="$1" # IN
local dir="$2" # IN

echo 'directory '"$dir" >> "$dbfile"
}
# END_OF_DB_DOT_SH

db_load 'vmdb' "$vmware_db"

# This comment is a hack to prevent RedHat distributions from outputing
# "Starting <basename of this script>" when running this startup script.
# We just need to write the word daemon followed by a space --hpreg.

# This defines echo_success() and echo_failure() on RedHat
if [ -r "$vmdb_answer_INITSCRIPTSDIR"'/functions' ]; then
. "$vmdb_answer_INITSCRIPTSDIR"'/functions'
fi

# This defines $rc_done and $rc_failed on S.u.S.E.
if [ -f /etc/rc.config ]; then
# Don't include the entire file: there could be conflicts
rc_done=`(. /etc/rc.config; echo "$rc_done")`
rc_failed=`(. /etc/rc.config; echo "$rc_failed")`
else
# Make sure the ESC byte is literal: Ash does not support echo -e
rc_done=' done'
rc_failed='failed'
fi

subsys=vmware
driver=vmmon
ppuser=vmppuser
vnet=vmnet
bridge=vmnet-bridge
dhcpd=vmnet-dhcpd
netifup=vmnet-netifup
natd=vmnet-natd
ping=vmware-ping
smbd=vmware-smbd
nmbd=vmware-nmbd

#
# Utilities
#

# BEGINNING_OF_IPV4_DOT_SH
#!/bin/sh

#
# IPv4 address functions
#
# Thanks to Owen DeLong <owen@delong.com> for pointing me at bash's arithmetic
# expansion ability, which is a lot faster than using 'expr' --hpreg
#

# Compute the subnet address associated to a couple IP/netmask
ipv4_subnet() {
local ip="$1"
local netmask="$2"

# Split quad-dotted addresses into bytes
# There is no double quote around the back-quoted expression on purpose
# There is no double quote around $ip and $netmask on purpose
set -- `IFS='.'; echo $ip $netmask`

echo $(($1 & $5)).$(($2 & $6)).$(($3 & $7)).$(($4 & $8))
}

# Compute the broadcast address associated to a couple IP/netmask
ipv4_broadcast() {
local ip="$1"
local netmask="$2"

# Split quad-dotted addresses into bytes
# There is no double quote around the back-quoted expression on purpose
# There is no double quote around $ip and $netmask on purpose
set -- `IFS='.'; echo $ip $netmask`

echo $(($1 | (255 - $5))).$(($2 | (255 - $6))).$(($3 | (255 - $7))).$(($4 | (255 - $8)))
}

# END_OF_IPV4_DOT_SH

# Are we running in a VM?
vmware_inVM() {
"$vmware_etc_dir"/checkvm >/dev/null 2>&1
}

# This is a function in case a future product name contains language-specific
# escape characters.
vmware_product_name() {
echo 'VMware Workstation'
exit 0
}


#
# Count the number of running virtual machines
# by looking at the number of references to the
# $driver module.
#
countVMs() {
# Beware of module dependancies here. An exact match is important
/sbin/lsmod | awk 'BEGIN {n = 0;} {if ($1 == "'"$driver"'") n = $3;} END {print n;}'
}

# Is a given module loaded?
isLoaded() {
local module="$1"

/sbin/lsmod | awk 'BEGIN {n = "no";} {if ($1 == "'"$module"'") n = "yes";} END {print n;}'
}

# Check if there is an IP route for a given subnet via a given interface
# Return true if there is _NO_ such route
noRoutePresent() {
local subnet="$1" # IN
local intf="$2" # IN

# Beware, there may be several identical routes
[ "`/sbin/route -n | grep '^'"$subnet"'.*'"$intf"'$'`" = '' ]
}

#
# Check that the IP address we are going to assign to the host machine on
# a private IP network does not already exist
#
# NB: If you don't want to do this test, just substitute
# false for it.
#
lookForHostOnlyNetwork() {
local ip="$1"

"$vmdb_answer_BINDIR"/"$ping" -q "$ip"
}

# Build a Linux kernel integer version
kernel_version_integer() {
echo $(((($1 * 256) + $2) * 256 + $3))
}

# Get the running kernel integer version
get_version_integer() {
local version_uts
local v1
local v2
local v3

version_uts=`uname -r`

# There is no double quote around the back-quoted expression on purpose
# There is no double quote around $version_uts on purpose
set -- `IFS='.'; echo $version_uts`
v1="$1"
v2="$2"
v3="$3"
# There is no double quote around the back-quoted expression on purpose
# There is no double quote around $v3 on purpose
set -- `IFS='-ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'; echo $v3`
v3="$1"

kernel_version_integer "$v1" "$v2" "$v3"
}

# Do we need the ppuser module?
isPpuserNeeded() {
local version_integer

version_integer=`get_version_integer`
echo $(((`kernel_version_integer '2' '1' '127'` <= $version_integer) && ($version_integer <= `kernel_version_integer '2' '3' '9'`)))
}

vmware_failed() {
if [ "`type -t 'echo_failure' 2>/dev/null`" = 'function' ]; then
echo_failure
else
echo -n "$rc_failed"
fi
}

vmware_success() {
if [ "`type -t 'echo_success' 2>/dev/null`" = 'function' ]; then
echo_success
else
echo -n "$rc_done"
fi
}
 
Old 07-28-2003, 06:51 AM   #14
Cray2
LQ Newbie
 
Registered: Jul 2003
Location: Norway
Distribution: Red Hat 9.0 Ximian Desktop2
Posts: 16

Original Poster
Rep: Reputation: 0
# Execute a macro
vmware_exec() {
local msg="$1" # IN
local func="$2" # IN
shift 2

echo -n ' '"$msg"

# On Caldera 2.2, SIGHUP is sent to all our children when this script exits
# I wanted to use shopt -u huponexit instead but their bash version
# 1.14.7(1) is too old
#
# Ksh does not recognize the SIG prefix in front of a signal name
if [ "$VMWARE_DEBUG" = 'yes' ]; then
(trap '' HUP; "$func" "$@")
else
(trap '' HUP; "$func" "$@") >/dev/null 2>&1
fi
if [ "$?" -gt 0 ]; then
vmware_failed
echo
return 1
fi

vmware_success
echo
return 0
}

# Execute a macro in the background
vmware_bg_exec() {
local msg="$1" # IN
local func="$2" # IN
shift 2

if [ "$VMWARE_DEBUG" = 'yes' ]; then
# Force synchronism when debugging
vmware_exec "$msg" "$func" "$@"
else
echo -n ' '"$msg"' (background)'

# On Caldera 2.2, SIGHUP is sent to all our children when this script exits
# I wanted to use shopt -u huponexit instead but their bash version
# 1.14.7(1) is too old
#
# Ksh does not recognize the SIG prefix in front of a signal name
(trap '' HUP; "$func" "$@") 2>&1 | logger -t 'VMware[init]' -p daemon.err &

vmware_success
echo
return 0
fi
}

#
# Macro definitions
#
# Note:
# . Each daemon must be started from its own directory to avoid busy devices
# . Each PID file doesn't need to be added to the installer database, because
# it is going to be automatically removed when it becomes stale (after a
# reboot). It must go directly under /var/run, or some distributions
# (RedHat 6.0) won't clean it
#

# Terminate a process synchronously
vmware_synchrone_kill() {
local pid="$1" # IN
local signal="$2" # IN
local second

kill -"$signal" "$pid"

# Wait a bit to see if the dirty job has really been done
for second in 0 1 2 3 4 5 6 7 8 9 10; do
if [ ! -d /proc/"$pid" ]; then
# Success
return 0
fi

sleep 1
done

# Timeout
return 1
}

# Kill the process associated to a pidfile
vmware_stop_pidfile() {
local pidfile="$1" # IN
local pid

pid=`cat "$pidfile" 2>/dev/null`
if [ "$pid" = '' ]; then
# The file probably does not exist or is empty. Success
return 0
fi
# Keep only the first number we find, because some Samba pid files are really
# trashy: they end with NUL characters
# There is no double quote around $pid on purpose
set -- $pid
pid="$1"

# First try a nice SIGTERM
if vmware_synchrone_kill "$pid" 15; then
return 0
fi

# Then send a strong SIGKILL
if vmware_synchrone_kill "$pid" 9; then
return 0
fi

return 1
}

vmware_load_module() {
/sbin/insmod -s -f "/lib/modules/`uname -r`/misc/$1.o" || exit 1
exit 0
}

vmware_unload_module() {
if [ "`isLoaded "$1"`" = 'yes' ]; then
/sbin/rmmod "$1" || exit 1
fi
exit 0
}

# Start the virtual machine monitor kernel service
vmware_start_vmmon() {
vmware_load_module $driver
}

# Stop the virtual machine monitor kernel service
vmware_stop_vmmon() {
vmware_unload_module $driver
}

# Start the virtual machine parallel port kernel service
vmware_start_vmppuser() {
if ! grep -q ' parport_release[^'$'\t'']*$' /proc/ksyms; then
# parport support is not built in the kernel
/sbin/modprobe parport || exit 1
fi
if ! grep -q ' parport_pc_[^'$'\t'']*$' /proc/ksyms; then
# parport_pc support is not built in the kernel
/sbin/modprobe parport_pc || exit 1
fi
vmware_load_module $ppuser
}

# Stop the virtual machine parallel port kernel service
vmware_stop_vmppuser() {
if [ "`isLoaded "$ppuser"`" = 'yes' ]; then
/sbin/rmmod "$ppuser" || exit 1
fi
# Try to unload the modules. Failure is allowed because some other process
# could be using them.
/sbin/modprobe -r parport_pc
/sbin/modprobe -r parport

# Return the right exitcode even if the previous commands failed
exit 0
}

# Start the virtual ethernet kernel service
vmware_start_vmnet() {
vmware_load_module $vnet
}

# Stop the virtual ethernet kernel service
vmware_stop_vmnet() {
vmware_unload_module $vnet
}

# Create a virtual host ethernet interface and connect it to a virtual
# ethernet hub
vmware_start_netifup() {
local vHostIf="$1" # IN
local vHubNr="$2" # IN

cd "$vmdb_answer_BINDIR" && "$vmdb_answer_BINDIR"/"$netifup" \
-d /var/run/"$netifup"-"$vHostIf".pid /dev/vmnet"$vHubNr" "$vHostIf"
}

# Disconnect a virtual host ethernet interface from a virtual ethernet hub
# and destroy the virtual host ethernet interface
vmware_stop_netifup() {
local vHostIf="$1" # IN

vmware_stop_pidfile /var/run/"$netifup"-"$vHostIf".pid
}

# Connect a physical host ethernet interface to a virtual ethernet hub
vmware_start_bridge() {
local vHubNr="$1" # IN
local pHostIf="$2" # IN

cd "$vmdb_answer_BINDIR" && "$vmdb_answer_BINDIR"/"$bridge" \
-d /var/run/"$bridge"-"$vHubNr".pid /dev/vmnet"$vHubNr" "$pHostIf"
}

# Disconnect a physical host ethernet interface from a virtual ethernet hub
vmware_stop_bridge() {
local vHubNr="$1" # IN

vmware_stop_pidfile /var/run/"$bridge"-"$vHubNr".pid
}

# Start a SMB name server on a private IP network
vmware_start_nmbd() {
local vHostIf="$1" # IN

# Disable logging to avoid the uncontrolled creation of unmanaged files
cd "$vmdb_answer_BINDIR" && "$vmdb_answer_BINDIR"/"$nmbd" -D -l /dev/null \
-s "$vmware_etc_dir"/"$vHostIf"/smb/smb.conf \
-f /var/run/"$nmbd"-"$vHostIf".pid
}

# Stop a SMB name server on a private IP network
vmware_stop_nmbd() {
local vHostIf="$1" # IN

vmware_stop_pidfile /var/run/"$nmbd"-"$vHostIf".pid
}

# Start a SMB share server on a private IP network
vmware_start_smbd() {
local vHostIf="$1" # IN

# Disable logging to avoid the uncontrolled creation of unmanaged files
cd "$vmdb_answer_BINDIR" && "$vmdb_answer_BINDIR"/"$smbd" -D -l /dev/null \
-s "$vmware_etc_dir"/"$vHostIf"/smb/smb.conf \
-f /var/run/"$smbd"-"$vHostIf".pid
}

# Stop a SMB share server on a private IP network
vmware_stop_smbd() {
local vHostIf="$1" # IN

vmware_stop_pidfile /var/run/"$smbd"-"$vHostIf".pid
}

# Start a DHCP server on a private IP network
vmware_start_dhcpd() {
local vHostIf="$1" # IN

# The daemon already logs its output in the system log, so we can safely
# trash it
cd "$vmdb_answer_BINDIR" && "$vmdb_answer_BINDIR"/"$dhcpd" \
-cf "$vmware_etc_dir"/"$vHostIf"/dhcpd/dhcpd.conf \
-lf "$vmware_etc_dir"/"$vHostIf"/dhcpd/dhcpd.leases \
-pf /var/run/"$dhcpd"-"$vHostIf".pid "$vHostIf" >/dev/null 2>&1
}

# Stop a DHCP server on a private IP network
vmware_stop_dhcpd() {
local vHostIf="$1" # IN

vmware_stop_pidfile /var/run/"$dhcpd"-"$vHostIf".pid
}

# Start the host-only network user service
vmware_start_hostonly() {
local vHubNr="$1" # IN
local vHostIf="$2" # IN
local ifIp="$3" # IN
local ifMask="$4" # IN
local run_dhcpd="$5" # IN
local run_samba="$6" # IN
local ifNet

#
# Do a cursory check to see if the host-only network
# configuration is still ok. We do this so that mobile
# hosts don't get setup at install time and then moved to
# a new locale where the host-only network config is no
# longer valid.
#
# NB: This really needs to be done at power-on time when
# VM is configured to use host-only networking so that
# we aren't fooled by dynamic changes in the network.
#
# XXX ping takes 10 seconds to timeout if nobody answers
# that slows boot too much so we do this bit in the
# background.
#
if lookForHostOnlyNetwork "$ifIp"; then
echo 'Host-only networking disabled because '"$ifIp"
echo 'appears to be a real, physical, existing address.'
echo 'Please run "'"$vmdb_answer_BINDIR"'/vmware-config.pl" to'
echo 'modify your host-only network configuration.'
exit 1
fi

vmware_start_netifup "$vHostIf" "$vHubNr" || exit 1

# Configure the virtual host ethernet interface and define the private IP
# network
#
# . We provide the broadcast address explicitly because versions of ifconfig
# prior to 1.39 (1999-03-18) seem to miscompute it
# . 2.0.x kernels don't install a route when the interface is marked up, but
# 2.2.x kernel do. Since we want to see any errors from route we don't
# just discard messages from route, but instead check if the route got
# installed before manually adding one.
ifNet=`ipv4_subnet "$ifIp" "$ifMask"`
if ifconfig "$vHostIf" inet "$ifIp" netmask "$ifMask" \
broadcast "`ipv4_broadcast "$ifIp" "$ifMask"`" up \
&& noRoutePresent "$ifNet" "$vHostIf"; then
route add -net "$ifNet" netmask "$ifMask" "$vHostIf"
fi

if [ "$run_dhcpd" = 'yes' ]; then
vmware_start_dhcpd "$vHostIf" || exit 1
fi

if [ "$run_samba" = 'yes' ]; then
vmware_start_nmbd "$vHostIf" || exit 1
vmware_start_smbd "$vHostIf" || exit 1
fi

exit 0
}

# Stop the host-only network user service
vmware_stop_hostonly() {
local vHostIf="$1" # IN
local ifIp="$2" # IN
local ifMask="$3" # IN
local ifNet

# Terminate the private network
ifNet=`ipv4_subnet "$ifIp" "$ifMask"`
noRoutePresent "$ifNet" "$vHostIf" \
|| route del -net "$ifNet" netmask "$ifMask" || exit 1
# To test if the interface exists, we can not just look at the exitcode
# because old versions of ifconfig don't exit with 1 when invoked with a
# non-existing interface
if [ "`ifconfig "$vHostIf" 2>/dev/null`" != '' ]; then
ifconfig "$vHostIf" down || exit 1
fi

vmware_stop_netifup "$vHostIf" || exit 1

exit 0
}

# Start the NAT network user service
vmware_start_nat() {
local vHubNr="$1" # IN

cd "$vmdb_answer_BINDIR" && "$vmdb_answer_BINDIR"/"$natd" \
-d /var/run/"$natd"-"$vHubNr".pid \
-m /var/run/"$natd"-"$vHubNr".mac \
-c "$vmware_etc_dir"/vmnet"$vHubNr"/nat/nat.conf
}

# Stop the NAT network user service
vmware_stop_nat() {
local vHubNr="$1" # IN

vmware_stop_pidfile /var/run/"$natd"-"$vHubNr".pid
}

# See how we were called.
case "$1" in
start)
if [ -e "$vmware_etc_dir"/not_configured ]; then
echo "`vmware_product_name`"' is installed, but it has not been (correctly) configured'
echo 'for the running kernel. To (re-)configure it, invoke the'
echo 'following command: '"$vmdb_answer_BINDIR"'/vmware-config.pl.'
echo

exit 1
fi

if vmware_inVM; then
# Refuse to start services in a VM: they are useless
exit 1
fi

echo 'Starting VMware services:'
exitcode='0'

vmware_exec 'Virtual machine monitor' vmware_start_vmmon
exitcode=`expr "$exitcode" + "$?"`

if [ "`isPpuserNeeded`" = '1' ]; then
vmware_exec 'Virtual bidirectional parallel port' \
vmware_start_vmppuser
exitcode=`expr "$exitcode" + "$?"`
else
# Try to load parport_pc. Failure is allowed as it does not exist
# on kernels 2.0
/sbin/modprobe parport_pc >/dev/null 2>&1
fi

if [ "$vmdb_answer_NETWORKING" = 'yes' ]; then
vmware_exec 'Virtual ethernet' vmware_start_vmnet
exitcode=`expr "$exitcode" + "$?"`

vHubNr=0
while [ $vHubNr -lt 256 ]; do
eval 'interface="$vmdb_answer_VNET_'"$vHubNr"'_INTERFACE"'
eval 'hostaddr="$vmdb_answer_VNET_'"$vHubNr"'_HOSTONLY_HOSTADDR"'
eval 'netmask="$vmdb_answer_VNET_'"$vHubNr"'_HOSTONLY_NETMASK"'
if [ -n "$interface" ]; then
vmware_exec 'Bridged networking on /dev/vmnet'"$vHubNr" \
vmware_start_bridge "$vHubNr" "$interface"
exitcode=`expr "$exitcode" + "$?"`
elif [ -n "$hostaddr" -a -n "$netmask" ]; then
eval 'samba="$vmdb_answer_VNET_'"$vHubNr"'_SAMBA"'
vmware_bg_exec 'Host-only networking on /dev/vmnet'"$vHubNr" \
vmware_start_hostonly "$vHubNr" 'vmnet'"$vHubNr" \
"$hostaddr" "$netmask" 'yes' "$samba"
exitcode=`expr "$exitcode" + "$?"`

eval 'nat="$vmdb_answer_VNET_'"$vHubNr"'_NAT"'
if [ "$nat" = 'yes' ]; then
vmware_exec 'NAT networking on /dev/vmnet'"$vHubNr" \
vmware_start_nat "$vHubNr"
exitcode=`expr "$exitcode" + "$?"`
fi
fi
vHubNr=`expr $vHubNr + 1`
done

fi

if [ "$exitcode" -gt 0 ]; then
# Set the 'not configured' flag
touch "$vmware_etc_dir"'/not_configured'
chmod 644 "$vmware_etc_dir"'/not_configured'
db_add_file "$vmware_db" "$vmware_etc_dir"'/not_configured' \
"$vmware_etc_dir"'/not_configured'
exit 1
fi

[ -d /var/lock/subsys ] || mkdir -p /var/lock/subsys
touch /var/lock/subsys/"$subsys"
;;

stop)
if [ "`countVMs`" -gt 0 ]; then
echo 'At least one instance of '"`vmware_product_name`"' is still running. Please stop all running'
echo 'instances of '"`vmware_product_name`"' first.'
echo

# The unconfigurator handle this exit code differently
exit 2
fi

echo 'Stopping VMware services:'
exitcode='0'

vmware_exec 'Virtual machine monitor' vmware_stop_vmmon
exitcode=`expr "$exitcode" + "$?"`

if [ "`isPpuserNeeded`" = '1' ]; then
vmware_exec 'Virtual bidirectional parallel port' \
vmware_stop_vmppuser
exitcode=`expr "$exitcode" + "$?"`
else
# Try to unload parport_pc. Failure is allowed as it does not exist
# on kernels 2.0, and some other process could be using it.
/sbin/modprobe -r parport_pc >/dev/null 2>&1
fi

if [ "$vmdb_answer_NETWORKING" = "yes" ]; then
# NB: must kill off processes using vmnet before
# unloading module
vHubNr=0
while [ $vHubNr -lt 256 ]; do
eval 'interface="$vmdb_answer_VNET_'"$vHubNr"'_INTERFACE"'
eval 'hostaddr="$vmdb_answer_VNET_'"$vHubNr"'_HOSTONLY_HOSTADDR"'
eval 'netmask="$vmdb_answer_VNET_'"$vHubNr"'_HOSTONLY_NETMASK"'
if [ -n "$interface" ]; then
vmware_exec "Bridged networking on /dev/vmnet$vHubNr" vmware_stop_bridge "$vHubNr"
exitcode=`expr "$exitcode" + "$?"`
elif [ -n "$hostaddr" -a -n "$netmask" ]; then
vmware_exec "DHCP server on /dev/vmnet$vHubNr" vmware_stop_dhcpd \
"vmnet$vHubNr"
exitcode=`expr "$exitcode" + "$?"`

eval 'samba="$vmdb_answer_VNET_'"$vHubNr"'_SAMBA"'
if [ "$samba" = "yes" ]; then
vmware_exec 'SMB share server on /dev/vmnet'"$vHubNr" \
vmware_stop_smbd 'vmnet'"$vHubNr"
exitcode=`expr "$exitcode" + "$?"`

vmware_exec 'SMB name server on /dev/vmnet'"$vHubNr" \
vmware_stop_nmbd 'vmnet'"$vHubNr"
exitcode=`expr "$exitcode" + "$?"`
fi

eval 'nat="$vmdb_answer_VNET_'"$vHubNr"'_NAT"'
if [ "$nat" = "yes" ]; then
vmware_exec 'NAT networking on /dev/vmnet'"$vHubNr" \
vmware_stop_nat "$vHubNr"
exitcode=`expr "$exitcode" + "$?"`
fi

vmware_exec 'Host-only networking on /dev/vmnet'"$vHubNr" \
vmware_stop_hostonly 'vmnet'"$vHubNr" "$hostaddr" "$netmask"

fi
vHubNr=`expr $vHubNr + 1`
done

vmware_exec 'Virtual ethernet' vmware_stop_vmnet
exitcode=`expr "$exitcode" + "$?"`
fi

if [ "$exitcode" -gt 0 ]; then
exit 1
fi

rm -f /var/lock/subsys/"$subsys"
;;

status)
if [ "`countVMs`" -gt 0 ]; then
echo 'At least one instance of '"`vmware_product_name`"' is still running.'
echo
fi

if [ "$vmdb_answer_NETWORKING" = "yes" ]; then
status "$bridge"
status "$dhcpd"
status "$netifup"
fi

echo -n "Module $driver "
/sbin/modprobe "$driver" >/dev/null 2>&1 && echo installed || echo "not installed"
if [ "`isPpuserNeeded`" = '1' ]; then
echo -n "Module $ppuser "
/sbin/modprobe "$ppuser" >/dev/null 2>&1 && echo installed || echo "not installed"
fi
if [ "$vmdb_answer_NETWORKING" = "yes" ]; then
echo -n "Module $vnet "
/sbin/modprobe "$vnet" >/dev/null 2>&1 && echo installed || echo "not installed"
fi
;;

restart)
"$0" stop && "$0" start
;;

*)
echo "Usage: `basename "$0"` {start|stop|status|restart}"
exit 1
esac

exit 0
 
Old 07-28-2003, 06:58 AM   #15
Bebo
Member
 
Registered: Jul 2003
Location: Göteborg
Distribution: Arch Linux (current)
Posts: 553

Rep: Reputation: 30
Hehe, it seems MasterC has everything in control here - good luck!
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Reboot,shutdown,logout issues in 10.1 Volt Slackware - Installation 3 08-12-2005 11:34 PM
gnome won't logout or shutdown properly RRolleston Debian 0 12-23-2004 05:33 PM
Logout twice to shutdown mhl Linux - Newbie 13 08-31-2003 05:02 PM
Run commands at logout/shutdown sbaguz Linux - General 2 08-21-2003 11:55 AM
Logout/Shutdown problems in KDE Palarran Linux - General 3 08-05-2003 03:50 PM


All times are GMT -5. The time now is 01:04 PM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration