1.下载nexus工具
http://download.sonatype.com/nexus/oss/nexus-2.7.2-03-bundle.tar.gz
2.解压
tar -zxvf nexus-2.7.2-03-bundle.tar.gz
3.移动到/usr/local/
mv nexus-2.7.2-03-bundle /usr/local/nexus2.7
以下是脚本配置
#! /bin/sh
#
# Copyright (c) 1999, 2006 Tanuki Software Inc.
#
# Java Service Wrapper sh script. Suitable for starting and stopping
# wrapped Java applications on UNIX platforms.
#
#-----------------------------------------------------------------------------
# These settings can be modified to fit the needs of your application
# Set this to the root of the Nexus installation
#设置安装路径
#NEXUS_HOME=".."
NEXUS_HOME="/usr/local/nexus2.7"
# If specified, the Wrapper will be run as the specified user.
# IMPORTANT - Make sure that the user has the required privileges to write into the Nexus installation directory.
# NOTE - This will set the user which is used to run the Wrapper as well as
# the JVM and is not useful in situations where a privileged resource or
# port needs to be allocated prior to the user being changed.
#设置启动用户
RUN_AS_USER=root
# Application
APP_NAME="nexus"
APP_LONG_NAME="Nexus OSS"
# Priority at which to run the wrapper. See "man nice" for valid priorities.
# nice is only used if a priority is specified.
PRIORITY=
# Location of the pid file.
#PIDDIR="."
# If uncommented, causes the Wrapper to be shutdown using an anchor file.
# When launched with the 'start' command, it will also ignore all INT and
# TERM signals.
#IGNORE_SIGNALS=true
# The following two lines are used by the chkconfig command. Change as is
# appropriate for your application. They should remain commented.
# chkconfig: 2345 20 80
# description: Test Wrapper Sample Application
# Do not modify anything beyond this point
#-----------------------------------------------------------------------------
# Get the fully qualified path to the script
case $0 in
/*)
SCRIPT="$0"
;;
*)
PWD=`pwd`
SCRIPT="$PWD/$0"
;;
esac
# Resolve the true real path without any sym links.
CHANGED=true
while [ "X$CHANGED" != "X" ]
do
# Change spaces to ":" so the tokens can be parsed.
SAFESCRIPT=`echo $SCRIPT | sed -e 's; ;:;g'`
# Get the real path to this script, resolving any symbolic links
TOKENS=`echo $SAFESCRIPT | sed -e 's;/; ;g'`
REALPATH=
for C in $TOKENS; do
# Change any ":" in the token back to a space.
C=`echo $C | sed -e 's;:; ;g'`
REALPATH="$REALPATH/$C"
# If REALPATH is a sym link, resolve it. Loop for nested links.
while [ -h "$REALPATH" ] ; do
LS="`ls -ld "$REALPATH"`"
LINK="`expr "$LS" : '.*-> \(.*\)$'`"
if expr "$LINK" : '/.*' > /dev/null; then
# LINK is absolute.
REALPATH="$LINK"
else
# LINK is relative.
REALPATH="`dirname "$REALPATH"`""/$LINK"
fi
done
done
if [ "$REALPATH" = "$SCRIPT" ]
then
CHANGED=""
else
SCRIPT="$REALPATH"
fi
done
# Change the current directory to the location of the script
cd "`dirname "$REALPATH"`"
REALDIR=`pwd`
# Resolve the location of the 'ps' command
PSEXE="/usr/bin/ps"
if [ ! -x "$PSEXE" ]
then
PSEXE="/bin/ps"
if [ ! -x "$PSEXE" ]
then
echo "Unable to locate 'ps'."
echo "Please report this message along with the location of the command on your system."
exit 1
fi
fi
# Resolve the os
DIST_OS=`uname -s | tr [:upper:] [:lower:] | tr -d [:blank:]`
case "$DIST_OS" in
'sunos')
DIST_OS="solaris"
PSEXE="/usr/ucb/ps"
;;
'hp-ux' | 'hp-ux64')
DIST_OS="hpux"
;;
'darwin')
DIST_OS="macosx"
;;
'unix_sv')
DIST_OS="unixware"
;;
esac
# Resolve the architecture
DIST_ARCH=`uname -p | tr [:upper:] [:lower:] | tr -d [:blank:]`
DIST_BITS=32
if [ "$DIST_ARCH" = "unknown" ]
then
DIST_ARCH=`uname -m | tr [:upper:] [:lower:] | tr -d [:blank:]`
fi
case "$DIST_ARCH" in
'athlon' | 'ia32' | 'i386' | 'i486' | 'i586' | 'i686')
DIST_ARCH="x86"
;;
'amd64' | 'x86_64' | 'ia64')
DIST_ARCH="x86"
DIST_BITS=64
;;
'ip27')
DIST_ARCH="mips"
;;
'power' | 'powerpc' | 'power_pc')
DIST_ARCH="ppc"
;;
'ppc64')
DIST_ARCH="ppc"
DIST_BITS=64
;;
'pa_risc' | 'pa-risc')
DIST_ARCH="parisc"
;;
'sun4u' | 'sparcv9')
DIST_ARCH="sparc"
;;
'9000/800')
DIST_ARCH="parisc"
;;
esac
# Extra architecture detection
case "$DIST_OS" in
'macosx')
if [ `sysctl hw.cpu64bit_capable | awk '{ print $2 }'` = '1' ]; then
DIST_BITS=64
fi
DIST_ARCH='universal'
;;
'aix')
DIST_BITS=`getconf KERNEL_BITMODE`
;;
esac
outputFile() {
if [ -f "$1" ]
then
echo " $1 (Found but not executable.)";
else
echo " $1"
fi
}
# Test if NEXUS_HOME is relative (does not start with /). If relative it should be relative to this script location
FIRST_CHAR=`echo $NEXUS_HOME | cut -c1,1`
if [ "$FIRST_CHAR" != "/" ]
then
NEXUS_HOME=$REALDIR/$NEXUS_HOME
fi
# Default PIDDIR to os/arch/bits directory
if [ "X$PIDDIR" = "X" ]
then
PIDDIR="bin/jsw/$DIST_OS-$DIST_ARCH-$DIST_BITS"
fi
# If the PIDDIR is relative, set its value relative to the full NEXUS_HOME to avoid problems if
# the working directory is later changed.
FIRST_CHAR=`echo $PIDDIR | cut -c1,1`
if [ "$FIRST_CHAR" != "/" ]
then
PIDDIR=$NEXUS_HOME/$PIDDIR
fi
# Process ID
ANCHORFILE="$PIDDIR/$APP_NAME.anchor"
PIDFILE="$PIDDIR/$APP_NAME.pid"
LOCKDIR="/var/lock/subsys"
LOCKFILE="$LOCKDIR/$APP_NAME"
pid=""
WRAPPER_CMD="$NEXUS_HOME/bin/jsw/$DIST_OS-$DIST_ARCH-$DIST_BITS/wrapper"
if [ ! -x "$WRAPPER_CMD" ]; then
echo "Missing platform binary: $WRAPPER_CMD"
exit 1
fi
WRAPPER_CONF="$NEXUS_HOME/bin/jsw/conf/wrapper.conf"
# Build the nice clause
if [ "X$PRIORITY" = "X" ]
then
CMDNICE=""
else
CMDNICE="nice -$PRIORITY"
fi
# Build the anchor file clause.
if [ "X$IGNORE_SIGNALS" = "X" ]
then
ANCHORPROP=
IGNOREPROP=
else
ANCHORPROP=wrapper.anchorfile=\"$ANCHORFILE\"
IGNOREPROP=wrapper.ignore_signals=TRUE
fi
# Build the lock file clause. Only create a lock file if the lock directory exists on this platform.
LOCKPROP=
if [ -d $LOCKDIR ]
then
if [ -w $LOCKDIR ]
then
LOCKPROP=wrapper.lockfile=\"$LOCKFILE\"
fi
fi
checkUser() {
# $1 touchLock flag
# $2 command
# Resolve the location of the 'id' command
IDEXE="/usr/xpg4/bin/id"
if [ ! -x "$IDEXE" ]
then
IDEXE="/usr/bin/id"
if [ ! -x "$IDEXE" ]
then
echo "Unable to locate 'id'."
echo "Please report this message along with the location of the command on your system."
exit 1
fi
fi
# Check the configured user. If necessary rerun this script as the desired user.
if [ "X$RUN_AS_USER" != "X" ]
then
if [ "`$IDEXE -u -n`" != "$RUN_AS_USER" ]
then
# If LOCKPROP and $RUN_AS_USER are defined then the new user will most likely not be
# able to create the lock file. The Wrapper will be able to update this file once it
# is created but will not be able to delete it on shutdown. If $2 is defined then
# the lock file should be created for the current command
if [ "X$LOCKPROP" != "X" ]
then
if [ "X$1" != "X" ]
then
# Resolve the primary group
RUN_AS_GROUP=`groups $RUN_AS_USER | awk '{print $3}' | tail -1`
if [ "X$RUN_AS_GROUP" = "X" ]
then
RUN_AS_GROUP=$RUN_AS_USER
fi
touch $LOCKFILE
chown $RUN_AS_USER:$RUN_AS_GROUP $LOCKFILE
fi
fi
# Still want to change users, recurse. This means that the user will only be
# prompted for a password once. Variables shifted by 1
su - $RUN_AS_USER -c "\"$REALPATH\" $2"
# Now that we are the original user again, we may need to clean up the lock file.
if [ "X$LOCKPROP" != "X" ]
then
getpid
if [ "X$pid" = "X" ]
then
# Wrapper is not running so make sure the lock file is deleted.
if [ -f "$LOCKFILE" ]
then
rm "$LOCKFILE"
fi
fi
fi
exit 0
fi
fi
# Check that script is not run as root
LUID=`$IDEXE -u`
if [ $LUID -eq 0 ]
then
echo "****************************************"
echo "WARNING - NOT RECOMMENDED TO RUN AS ROOT"
echo "****************************************"
if [ ! "`$IDEXE -u -n`" = "$RUN_AS_USER" ]
then
echo "If you insist running as root, then set the environment variable RUN_AS_USER=root before running this script."
exit 1
fi
fi
}
getpid() {
if [ -f "$PIDFILE" ]
then
if [ -r "$PIDFILE" ]
then
pid=`cat "$PIDFILE"`
if [ "X$pid" != "X" ]
then
# It is possible that 'a' process with the pid exists but that it is not the
# correct process. This can happen in a number of cases, but the most
# common is during system startup after an unclean shutdown.
# The ps statement below looks for the specific wrapper command running as
# the pid. If it is not found then the pid file is considered to be stale.
case "$DIST_OS" in
'macosx')
pidtest=`$PSEXE -ww -p $pid -o command | grep "wrapper.pidfile" | tail -1`
;;
'solaris')
pidtest=`$PSEXE ww $pid | grep "wrapper.pidfile" | tail -1`
;;
*)
pidtest=`$PSEXE -p $pid -o args | grep "wrapper.pidfile" | tail -1`
;;
esac
if [ "X$pidtest" = "X" ]
then
# This is a stale pid file.
rm -f "$PIDFILE"
echo "Removed stale pid file: $PIDFILE"
pid=""
fi
fi
else
echo "Cannot read $PIDFILE."
exit 1
fi
fi
}
testpid() {
if [ "$DIST_OS" = "solaris" ]
then
pid=`$PSEXE ww $pid | grep $pid | grep -v grep | awk '{print $1}' | tail -1`
else
pid=`$PSEXE -p $pid | grep $pid | grep -v grep | awk '{print $1}' | tail -1`
fi
if [ "X$pid" = "X" ]
then
# Process is gone so remove the pid file.
rm -f "$PIDFILE"
pid=""
fi
}
console() {
echo "Running $APP_LONG_NAME..."
getpid
if [ "X$pid" = "X" ]
then
# The string passed to eval must handles spaces in paths correctly.
COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=$APP_NAME wrapper.pidfile=\"$PIDFILE\" $ANCHORPROP $LOCKPROP"
eval $COMMAND_LINE
else
echo "$APP_LONG_NAME is already running."
exit 1
fi
}
start() {
echo "Starting $APP_LONG_NAME..."
getpid
if [ "X$pid" = "X" ]
then
# The string passed to eval must handles spaces in paths correctly.
COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=$APP_NAME wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $ANCHORPROP $IGNOREPROP $LOCKPROP"
eval $COMMAND_LINE
else
echo "$APP_LONG_NAME is already running."
exit 1
fi
getpid
if [ "X$pid" != "X" ]
then
echo "Started $APP_LONG_NAME."
else
echo "Failed to start $APP_LONG_NAME."
fi
}
stopit() {
echo "Stopping $APP_LONG_NAME..."
getpid
if [ "X$pid" = "X" ]
then
echo "$APP_LONG_NAME was not running."
else
if [ "X$IGNORE_SIGNALS" = "X" ]
then
# Running so try to stop it.
kill $pid
if [ $? -ne 0 ]
then
# An explanation for the failure should have been given
echo "Unable to stop $APP_LONG_NAME."
exit 1
fi
else
rm -f "$ANCHORFILE"
if [ -f "$ANCHORFILE" ]
then
# An explanation for the failure should have been given
echo "Unable to stop $APP_LONG_NAME."
exit 1
fi
fi
# We can not predict how long it will take for the wrapper to
# actually stop as it depends on settings in wrapper.conf.
# Loop until it does.
savepid=$pid
CNT=0
TOTCNT=0
while [ "X$pid" != "X" ]
do
# Show a waiting message every 5 seconds.
if [ "$CNT" -lt "5" ]
then
CNT=`expr $CNT + 1`
else
echo "Waiting for $APP_LONG_NAME to exit..."
CNT=0
fi
TOTCNT=`expr $TOTCNT + 1`
sleep 1
testpid
done
pid=$savepid
testpid
if [ "X$pid" != "X" ]
then
echo "Failed to stop $APP_LONG_NAME."
exit 1
else
echo "Stopped $APP_LONG_NAME."
fi
fi
}
status() {
getpid
if [ "X$pid" = "X" ]
then
echo "$APP_LONG_NAME is not running."
exit 1
else
echo "$APP_LONG_NAME is running ($pid)."
exit 0
fi
}
dump() {
echo "Dumping $APP_LONG_NAME..."
getpid
if [ "X$pid" = "X" ]
then
echo "$APP_LONG_NAME was not running."
else
kill -3 $pid
if [ $? -ne 0 ]
then
echo "Failed to dump $APP_LONG_NAME."
exit 1
else
echo "Dumped $APP_LONG_NAME."
fi
fi
}
case "$1" in
'console')
checkUser touchlock $1
console
;;
'start')
checkUser touchlock $1
start
;;
'stop')
checkUser "" $1
stopit
;;
'restart')
checkUser touchlock $1
stopit
start
;;
'status')
checkUser "" $1
status
;;
'dump')
checkUser "" $1
dump
;;
*)
echo "Usage: $0 { console | start | stop | restart | status | dump }"
exit 1
;;
esac
exit 0
- 浏览: 19100 次
- 性别:
- 来自: 广州
文章分类
最新评论
发表评论
-
linux yum 指令详解
2016-12-06 08:43 492来自 http://www.360doc.com/con ... -
linux 哪些服务可以禁止启动
2016-12-06 08:46 719我的CentOS 6.0的ntsysv的配置,以下Enab ... -
linux chkconfig手动创建自启动脚本
2016-12-06 08:47 445chkconfig命令主要用来更新(启动或停止)和查询 ... -
linux svn 安装与配置
2019-08-13 17:01 320Linux下svn搭建配置流程 ... -
CentOS linux 软件的安装与卸载
2016-12-06 08:43 928CentOS 安装软件的常用指令 安装指令 yum i ... -
linux make 工具安装指南
2014-05-21 17:40 1023安装make工具 make工具依赖gcc ,automa ... -
linux Nginx+tomcat整合安装配置
2014-05-21 17:38 472安装JRE到http://www.oracle ... -
linux nginx 自启动配置脚本
2014-05-21 17:38 998nginx添加服务启动以下内容保存为文件nginx到/et ... -
linux nginx 配置
2014-05-21 17:33 377PS:nginx.conf配置文件 ... -
linux tomcat自动启动配置
2014-03-25 16:19 617方法一:linux 下tomcat开机自启动修改Tomca ... -
一些常用的linux 系统命令
2014-03-25 16:18 674服务器安装步骤1.安装linux2.设置initt配置文件某项 ... -
CentOS linux mysql 安装指南
2014-03-25 16:17 559执行yum指令安装mysql服务端软件 yum insta ... -
把目录下所有文件名输出到 一个文件中
2014-03-25 16:11 718把目录下所有文件名输出到 一个文件中dir /n /a-d ...
相关推荐
如何进行Linux安装配置maven以及搭建nexus服务器.docx
Linux-nexus安装Linux-nexus安装Linux-nexus安装Linux-nexus安装Linux-nexus安装Linux-nexus安装Linux-nexus安装
Linux系统部署Nexus操作步骤(nexus-3.20.1-01) Linux系统部署Nexus操作步骤(nexus-3.20.1-01) Linux系统部署Nexus操作步骤(nexus-3.20.1-01)
Linux版本的Nuxus下载,官网下载不下来
搭建私服资源,包括Linux版本nexus3.40.1、上传私服需配置的setting文件,下载依赖需配置的setting文件,免费供大家取用
官网一般下不来,很坑爹,这里是安装包,及其安装配置说明文档
Nexus安装和配置手册,详细地说明了Nexus的配置。
linux下忘记密码后重新配置nexus.docx
nexus3.x版本linux(官网下载).zip
Nexus安装和配置手册.doc
nexus3.6.x安装配置,详细描述nexus3.6.x安装的具体步骤。
配置Nexus代理中央仓库,其它任何公开的Maven仓库,将你组织内部的Maven配置指向Nexus,这样所有构件都将从Nexus下载,如果Nexus没有你要的构件,它会自动先去外部仓库下载到本地,仅一次。 本地宿主仓库。Nexus可以...
迅速掌握如何使用nexus,搭建属于自己的私服仓库
Nexus 3.7.1-02 Linux版本
maven nexus 配置,简要介绍如何配置nexus。。。。。。
建立Maven私服 – Nexus下载、安装、配置、使用 建立Maven私服 – Nexus下载、安装、配置、使用
maven 私服 nexus2 nexus3 安装与说明,只有简单的安装,没有详细的配置使用说明
nexus-详细配置文档
详细介绍了nexus私服的配置及安装方法