summarylogtreecommitdiffstats
path: root/vmware.initd
diff options
context:
space:
mode:
authorAlexander Shursha2018-12-07 14:02:12 +0300
committerAlexander Shursha2018-12-07 14:02:12 +0300
commit409e0d26f2c9d1d46922131da91b5c1365f4cbef (patch)
tree5c118955f3bd0221d9c5818a0855435f74b61b92 /vmware.initd
downloadaur-vmware-openrc.tar.gz
Initial import
Diffstat (limited to 'vmware.initd')
-rwxr-xr-xvmware.initd85
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
+}
+