0

우분투 14.04 (VirtualBox/Vagrant 시스템). 내가 노력하고 때 root 사용자로Atlassian Fisheye Crucible - Init.d service fisheye 기본 권한 체계가 없습니다. 'defaultMentionParserListener'라는 이름의 bean을 생성하는 중 오류가 발생했습니다.

#!/bin/bash 

# FISHEYE_HOME: The path to the FishEye installation. It's recommended to create a symbolic link to the latest version so 
# the process will still work after upgrades. Be sure to update the symlink itself when upgrading. 
# Example: ln -s /usr/local/atlassian/applications/fisheye/4.2.0 /usr/local/atlassian/applications/fisheye/latest 
FISHEYE_HOME="/mnt/fecru-3.9.1" 

# FISHEYE_INST: The path to store Fisheye data. 
# The 2 lines below should be uncommented only if you don't have the environment variables set in /etc/environment file. 
#export FISHEYE_INST="/mnt/fecru-3.9.1_fisheye_data" 
#mkdir -p $FISHEYE_INST || sudo mkdir -p $FISHEYE_INST 

fisheyectl() { 
    if [ ! -f "$FISHEYE_HOME/fisheyeboot.jar" ] ; then 
     echo "Error: Could not find $FISHEYE_HOME/fisheyeboot.jar" 
     exit 1 
    fi 
    #exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$1" 
    "$FISHEYE_HOME/bin/fisheyectl.sh" "$1" 
} 

case "$1" in 
     start) 
       fisheyectl start 
       ;; 
     stop) 
       fisheyectl stop 
       ;; 
     restart) 
       fisheyectl stop 
       sleep 10 
       fisheyectl start 
       ;; 
     status) 
       fecru_pid=$(ps -eAf|grep fecru|grep -v grep|sed "s/[ \t][ \t]*/ /g"|cut -d" " -f2|head -1) 
       if [[ -n "${fecru_pid}" ]]; 
       then 
        echo "Process 'fecru' fisheye/crucible is running. PID (${fecru_pid})" 
       else 
        echo "Process 'fecru' fisheye/crucible is NOT running." 
       fi 
       ;; 

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

echo "- Log files are available here:" 
if [[ -n "${FISHEYE_INST}" ]]; 
then 
    echo "$(find "${FISHEYE_INST}/var/log" | sed "s/^/ /")"; 
else 
    echo "$(find "${FISHEYE_HOME}/var/log" | sed "s/^/ /")" 
fi 
echo 

exit 0 

: 그것이있는 init.d 수준의 시작 스크립트와 함께 제공되지 않으므로

어안이 유물은 zip version: 3.9.1

, 나는 다음과 같은 스크립트 /etc/init.d/fisheye를 생성 service fisheye start을 실행하려면 프로세스를 시작하지만 다음과 같은 주요 오류를 나타내는 끝에 실패합니다.

2017-03-03 19:59:30,586 ERROR - No default permission scheme exists 
2017-03-03 19:59:30,743 ERROR - The Web context could not be started 
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'defaultMentionParserListener' defined in URL 

전체 로그 :/mnt/fecru-3.9.1/var/log/fisheye.out file: download here

방법 어안 시작 나는이 결의를 얻을 수 있습니다? 폴더 /mnt/fecru-3.9.1에 사용자 root에 대해 유효한 775 권한 (재귀 적으로 설정 됨)이 있습니다.

는 fisheyectl.sh 파일에 디버그 (셸/bash는 -x) 옵션을 켜기 보여줍니다

+ CMD=/usr/bin/java -Xmx1024m -Dfisheye.library.path= -Dfisheye.inst=/mnt/fecru-3.9.1 -Djava.awt.headless=true -Djava.endorsed.dirs=/mnt/fecru-3.9.1/lib/endorsed -jar /mnt/fecru-3.9.1/fisheyeboot.jar start 
+ echo Starting FishEye/Crucible... Output redirected to /mnt/fecru-3.9.1/var/log/fisheye.out 
Starting FishEye/Crucible... Output redirected to /mnt/fecru-3.9.1/var/log/fisheye.out 
+ whoami 
root 
+ echo 

+ echo 

+ nohup sh -c exec /usr/bin/java -Xmx1024m -Dfisheye.library.path= -Dfisheye.inst=/mnt/fecru-3.9.1 -Djava.awt.headless=true -Djava.endorsed.dirs=/mnt/fecru-3.9.1/lib/endorsed -jar /mnt/fecru-3.9.1/fisheyeboot.jar start 

답변

0

내가 root 할 필요가 없었어요. 방기/루트 사용자 모두가 폴더에 재귀 적으로 설정된 775 (변경 : 루트로 chown)를 가지고 있지만 이상한 사용 권한 문제가 발생하면서 root 사용자로 바뀌 었습니다.

솔루션이었다 1) 내가 /mnt/fecru-3.9.1 폴더가 아닌 다른했다 FISHEYE_INST 폴더를 (설정있는 init.d 수준 스크립트를 변경

#!/bin/bash 

# FISHEYE_HOME: The path to the FishEye installation. It's recommended to create a symbolic link to the latest version so 
# the process will still work after upgrades. Be sure to update the symlink itself when upgrading. 
# Example: ln -s /usr/local/atlassian/applications/fisheye/4.2.0 /usr/local/atlassian/applications/fisheye/latest 
FISHEYE_HOME="/mnt/fecru-3.9.1" 

# FISHEYE_INST: The path to store Fisheye data. 
# The 2 lines below should be uncommented only if you don't have the environment variables set in /etc/environment file. 
export FISHEYE_INST="/mnt/fecru-3.9.1_fisheye_data" 
mkdir -p $FISHEYE_INST || sudo mkdir -p $FISHEYE_INST 

fisheyectl() { 
    if [ ! -f "$FISHEYE_HOME/fisheyeboot.jar" ] ; then 
     echo "Error: Could not find $FISHEYE_HOME/fisheyeboot.jar" 
     exit 1 
    fi 
    "$FISHEYE_HOME/bin/fisheyectl.sh" "$1" 
} 

case "$1" in 
     start) 
       fisheyectl start 
       ;; 
     stop) 
       fisheyectl stop 
       ;; 
     restart) 
       fisheyectl stop 
       sleep 10 
       fisheyectl start 
       ;; 
     status) 
     fecru_pid=$(ps -eAf|grep fecru|grep -v grep|sed "s/[ \t][ \t]*/ /g"|cut -d" " -f2|head -1) 
       if [[ -n "${fecru_pid}" ]]; 
       then 
        echo "Process 'fecru' fisheye/crucible is running. PID (${fecru_pid})" 
       else 
        echo "Process 'fecru' fisheye/crucible is NOT running." 
       fi 
       ;; 

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

echo "- Log files are available here:" 
if [[ -n "${FISHEYE_INST}" ]]; 
then 
    echo "$(find "${FISHEYE_INST}/var/log" 2>/dev/null | sed "s/^/ /")"; 
else 
    echo "$(find "${FISHEYE_HOME}/var/log" 2>/dev/null | sed "s/^/ /")" 
fi 
echo 

exit 0 

2) 참고 :. /mnt/fecru-3.9.1 폴더 내가 압축을 풀에서 가져온 /mnt 폴더 아래에 둔 유물. 3) 내가 할 것 프로세스는 어안/도가니) 프로세스를 실행하기위한 (해당 폴더를 사용합니다하고 데이터의 저장합니다 무엇 FISHEYE_INST 변수를 세트로//mnt/fecru-3.9.1_fisheye_data

4 내부 로그) 지금은 모든 사용자가 될 수 유효한 sudo 액세스 권한이 있어야하며 root 일 필요는 없습니다.

5)

그래서 나는 실행 : sudo service fisheye start, sudo service fisheye status이 시작 단계는 포트 8060 (기본에 어안 포털을) 시작했다.

[email protected]:~$ sudo service fisheye status 
Process 'fecru' fisheye/crucible is running. PID (9080) 
- Log files are available here: 
    /mnt/fecru-3.9.1_fisheye_data/var/log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheye-2017-03-03.log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/fisheye.out 

(기반의 새로운 위치 FISHEYE_INST 당)이 시간 로그 파일이었다 /mnt/fecru-3.9.1_fisheye_data/var/log/fisheye.out 있으며 다음했다 :

17 2017-03-03 21:25:54,927 INFO - ======================================================= 
    18 2017-03-03 21:25:54,927 INFO - 
    19 2017-03-03 21:25:54,928 INFO - Welcome to FishEye! 
    20 2017-03-03 21:25:54,928 INFO - 
    21 2017-03-03 21:25:54,928 INFO - You need to configure an admin password and enter your 
    22 2017-03-03 21:25:54,928 INFO - license key. You can do this by accessing FishEye through 
    23 2017-03-03 21:25:54,928 INFO - a web browser, once the server has started: 
    24 2017-03-03 21:25:54,928 INFO - 
    25 2017-03-03 21:25:54,935 INFO - http://myubuntuvagrant:8060 
    26 2017-03-03 21:25:54,935 INFO - 
    27 2017-03-03 21:25:54,936 INFO - Refer to the FishEye administration guide 
    28 2017-03-03 21:25:54,936 INFO - for more information: 
    29 2017-03-03 21:25:54,936 INFO - 
    30 2017-03-03 21:25:54,937 INFO - https://confluence.atlassian.com/display/FISHEYE/Starting+to+use+FishEye 
    31 2017-03-03 21:25:54,937 INFO - 
    32 2017-03-03 21:25:54,937 INFO - ======================================================= 
    33 2017-03-03 21:25:54,937 INFO - 
    34 2017-03-03 21:25:54,940 INFO - Your Server ID is B0SX-F5FH-3753-40DM 
    35 2017-03-03 21:25:55,251 INFO - Adding secondary content dir of /mnt/fecru-3.9.1_fisheye_data/content 
    36 2017-03-03 21:26:02,175 INFO - Starting database... 
    37 2017-03-03 21:26:03,233 INFO - BoneCP - tracking statements enabled for pool [mainPool] 
    38 2017-03-03 21:26:05,304 INFO - BoneCP - tracking statements enabled for pool [retriablePool] 
    39 2017-03-03 21:26:05,786 INFO - Database started. 
    40 2017-03-03 21:26:07,515 INFO - Starting plugin system... 
2017-03-03 21:25:54,937 INFO - 
2017-03-03 21:25:54,937 INFO - ======================================================= 
2017-03-03 21:25:54,937 INFO - 
2017-03-03 21:25:54,940 INFO - Your Server ID is B0SX-F5FH-3753-40DM 
2017-03-03 21:25:55,251 INFO - Adding secondary content dir of /mnt/fecru-3.9.1_fisheye_data/content 
2017-03-03 21:26:02,175 INFO - Starting database... 
2017-03-03 21:26:03,233 INFO - BoneCP - tracking statements enabled for pool [mainPool] 
2017-03-03 21:26:05,304 INFO - BoneCP - tracking statements enabled for pool [retriablePool] 
2017-03-03 21:26:05,786 INFO - Database started. 
2017-03-03 21:26:07,515 INFO - Starting plugin system... 
2017-03-03 21:26:11,119 INFO - Mail system not configured. 
2017-03-03 21:26:55,616 INFO - Plugin system started. 
2017-03-03 21:26:57,088 INFO - Server started on :8060 (http) (control port on 127.0.0.1:8059) 

참고 : 내 방랑 파일의에서는, 방랑 기계를 사용되면서를 구성 Vagrantfile, 게스트 VM (우분투) 및 호스트 컴퓨터 (Mac OS)에서 다음 포트 매핑을했습니다.

# Create a forwarded port mapping which allows access to a specific port 
    # within the machine from a port on the host machine. In the example below, 
    # accessing "localhost:8080" will access port 80 on the guest machine. 
    config.vm.network "forwarded_port", guest: 80, host: 8180 
    config.vm.network "forwarded_port", guest: 8060, host: 8160 

이것은 내가 포트 8160 나의 호스트 맥 컴퓨터에서 포트 8060에 게스트 VM에서 실행되는 응용 프로그램/포털에 액세스 할 수 있습니다 의미합니다.

따라서-OR- http://10.20.30.40:8160 (내 Mac 컴퓨터의 IP)에서 쉽게 설정할 수있는 Fisheye 포털 실행이 표시됩니다.

나도 몰라 왜 내가 가진 같은 기본 설치 폴더는 /mnt/fecru-3.9.1FISHEYE_INST varible 주석, 그때는 사용자/소유자와 그룹이 vagrant/root로 전체의 775 권한 설정에도 불구하고 이러한 오류를 가지고 통로.

설정 FISHEYE_INST이 문제를 해결했습니다.

이 init.d 스크립트는 작은 논리를 추가하여 PID 파일을 생성하여 향상시킬 수 있습니다. 예상대로

작업start, stop, restart, status 모든했다. enter image description here

참고 : 매핑 된 포트 8160) 당

[email protected]:~$ sudo service fisheye status 
Process 'fecru' fisheye/crucible is running. PID (9080) 
- Log files are available here: 
    /mnt/fecru-3.9.1_fisheye_data/var/log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheye-2017-03-03.log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/fisheye.out 

[email protected]:~$ sudo service fisheye stop 
INFO - Using log4j configuration file: /mnt/fecru-3.9.1/log4j-client.xml 
INFO - FishEye arguments: [] 
FishEye Shutdown successfully 
Problem connecting to 127.0.0.1:8059 
java.net.SocketException: Connection reset 
    at java.net.SocketInputStream.read(SocketInputStream.java:210) 
    at java.net.SocketInputStream.read(SocketInputStream.java:141) 
    at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284) 
    at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326) 
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178) 
    at java.io.InputStreamReader.read(InputStreamReader.java:184) 
    at java.io.BufferedReader.fill(BufferedReader.java:161) 
    at java.io.BufferedReader.readLine(BufferedReader.java:324) 
    at java.io.BufferedReader.readLine(BufferedReader.java:389) 
    at com.cenqua.fisheye.ctl.BaseRemoteCommand.sendCommand(BaseRemoteCommand.java:96) 
    at com.cenqua.fisheye.ctl.BaseRemoteCommand.mainImpl(BaseRemoteCommand.java:57) 
    at com.cenqua.fisheye.ctl.Stop.main(Stop.java:11) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.cenqua.fisheye.FishEyeCtl.mainImpl(FishEyeCtl.java:101) 
    at com.cenqua.fisheye.FishEyeCtl.main(FishEyeCtl.java:44) 
- Log files are available here: 
    /mnt/fecru-3.9.1_fisheye_data/var/log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheye-2017-03-03.log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/fisheye.out 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheyectl-2017-03-03.log 

[email protected]:~$ sudo service fisheye status 
Process 'fecru' fisheye/crucible is NOT running. 
- Log files are available here: 
    /mnt/fecru-3.9.1_fisheye_data/var/log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheye-2017-03-03.log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/fisheye.out 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheyectl-2017-03-03.log 

[email protected]:~$ sudo service fisheye start 
Starting FishEye/Crucible... Output redirected to /mnt/fecru-3.9.1_fisheye_data/var/log/fisheye.out 
- Log files are available here: 
    /mnt/fecru-3.9.1_fisheye_data/var/log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheye-2017-03-03.log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/fisheye.out 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheyectl-2017-03-03.log 

[email protected]:~$ sudo service fisheye status 
Process 'fecru' fisheye/crucible is running. PID (9657) 
- Log files are available here: 
    /mnt/fecru-3.9.1_fisheye_data/var/log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheye-2017-03-03.log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/fisheye.out 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheyectl-2017-03-03.log 

[email protected]:~$ 

6) 포털 (같았다 자동으로 기계가 fisheye 서비스/재부팅/부팅시 프로세스를 시작하기 위해, 나는 다음을 실행 : sudo update-rc.d fisheye defaults을 입력하고 파일에 유효한 755 실행 권한이 있는지 확인하십시오.

위의 작업을 수행 한 후에 우분투 방랑자 컴퓨터에서 로그 아웃 한 후 Vagrantfile 장소에있는 폴더로 이동하여 다음 명령을 실행했습니다. vagrant halt; vagrant up; vagrant ssh. 나는 다시 다음과 같이 문제의 기계에 로그인하여 Fisheye/Crucible 서비스/프로세스가 실행 중인지 확인하기 위해 다음을 실행했습니다.

[email protected]:~$ ps -eAf|grep fecru 
root  1119  1 65 21:55 ?  00:00:21 /usr/bin/java -Xmx1024m -Dfisheye.library.path= -Dfisheye.inst=/mnt/fecru-3.9.1_fisheye_data -Djava.awt.headless=true -Djava.endorsed.dirs=/mnt/fecru-3.9.1/lib/endorsed -jar /mnt/fecru-3.9.1/fisheyeboot.jar start 
vagrant 2023 1924 0 21:55 pts/0 00:00:00 grep --color=auto fecru 
[email protected]:~$ date 
Fri Mar 3 21:55:39 UTC 2017 
[email protected]:~$ sudo service fisheye status 
Process 'fecru' fisheye/crucible is running. PID (1119) 
- Log files are available here: 
    /mnt/fecru-3.9.1_fisheye_data/var/log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheye-2017-03-03.log 
    /mnt/fecru-3.9.1_fisheye_data/var/log/fisheye.out 
    /mnt/fecru-3.9.1_fisheye_data/var/log/atlassian-fisheyectl-2017-03-03.log