diff options
author | Alexander Shursha | 2018-12-07 14:02:12 +0300 |
---|---|---|
committer | Alexander Shursha | 2018-12-07 14:02:12 +0300 |
commit | 409e0d26f2c9d1d46922131da91b5c1365f4cbef (patch) | |
tree | 5c118955f3bd0221d9c5818a0855435f74b61b92 /vmware.initd | |
download | aur-vmware-openrc.tar.gz |
Initial import
Diffstat (limited to 'vmware.initd')
-rwxr-xr-x | vmware.initd | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/vmware.initd b/vmware.initd new file mode 100755 index 000000000000..ac46f8a10d7a --- /dev/null +++ b/vmware.initd @@ -0,0 +1,85 @@ +#!/sbin/openrc-run +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +depend() { + need localmount + use net +} + +start() { + #start-stop-daemon --start --exec @@BINDIR@@/vmware-usbarbitrator + /usr/bin/vmware-usbarbitrator + + # vmci might be: + # 1) built as external kernel module + # 2) built as internal kernel module (with name vmw_vmci) + # 3) embedded in the kernel + for mod in /lib/modules/$(uname -r)/misc/vmci.ko \ + /lib/modules/$(uname -r)/kernel/drivers/misc/vmw_vmci/vmw_vmci.ko ; + do + if [[ -f "${mod}" ]] ; then + modprobe -v $(basename "${mod}" .ko) + eend $? + break + fi + done + + # vsock might be: + # 1) built as external kernel module + # 2) built as internal kernel module (with name vmw_vsock_vmci_transport) + # 3) embedded in the kernel + for mod in /lib/modules/$(uname -r)/misc/vsock.ko \ + /lib/modules/$(uname -r)/kernel/net/vmw_vsock/vmw_vsock_vmci_transport.ko ; + do + if [[ -f "${mod}" ]] ; then + modprobe -v $(basename "${mod}" .ko) + eend $? + break + fi + done + + # vmci or vsock were already loaded by the previous modprobe, + # no need to do it here + modprobe -av vmmon vmnet + /usr/bin/vmware-networks --start +} + +stop() { + #start-stop-daemon --stop --exec @@BINDIR@@/vmware-usbarbitrator + killall --wait /usr/bin/vmware-usbarbitrator + eend $? + /usr/bin/vmware-networks --stop + eend $? + ebegin Stopping VMware services + modprobe -rv vmmon vmnet + + # vsock might be: + # 1) built as external kernel module + # 2) built as internal kernel module (with name vmw_vsock_vmci_transport) + # 3) embedded in the kernel + for mod in /lib/modules/$(uname -r)/misc/vsock.ko \ + /lib/modules/$(uname -r)/kernel/net/vmw_vsock/vmw_vsock_vmci_transport.ko ; + do + if [[ -f "${mod}" ]] ; then + modprobe -rv $(basename "${mod}" .ko) + eend $? + break + fi + done + + # vmci might be: + # 1) built as external kernel module + # 2) built as internal kernel module (with name vmw_vmci) + # 3) embedded in the kernel + for mod in /lib/modules/$(uname -r)/misc/vmci.ko \ + /lib/modules/$(uname -r)/kernel/drivers/misc/vmw_vmci/vmw_vmci.ko ; + do + if [[ -f "${mod}" ]] ; then + modprobe -rv $(basename "${mod}" .ko) + eend $? + break + fi + done +} + |