2016-07-22 11 views
1

私はコマンドラインから呼び出すbashスクリプトでssh経由でサービスを開始しようとしています。私は、次のコマンドを実行できます(私は場所にSSHキーを持っているので、私は、p /でワットを配置する必要はありません)bashスクリプトをssh経由で起動するサービス

ssh -t -t [email protected] 'sudo /sbin/service test stop'を - 、細かい作品 - サービス

ssh -t -t [email protected] 'sudo /sbin/service test status'を停止し、罰金作品ステータスはサービス

ssh -t -t [email protected] 'sudo /sbin/service test start' - サービスを開始しないでください???

これはCentOSの6.7

上で実行されているカスタムinit.dスクリプトである、誰もが任意のアイデアを持っていますか?

または私が紛失している可能性のあるものを参照してください。

ありがとうございます!

編集:ここではinit.dスクリプトです:

#!/bin/bash 
# 
### BEGIN INIT INFO 
# Provides:   test 
# Required-Start: networking 
# Required-Stop:  networking 
# Default-Start:  3 4 5 
# Default-Stop:  0 1 6 
# Short-Description: 
### END INIT INFO 
# 

###source function library 
source /etc/init.d/functions 

APPNAME="test" 
APPDIR="/tmp" 
CONFIGDIR="/tmp/config" 
LOCKFILE=/var/lock/subsys/$APPNAME 
PIDFILE="/var/run/$APPNAME.pid" 

###Declare variables for test 
CONFIG="test.config" 

start() { 
    echo -n "Starting $APPNAME: " 
    source "${CONFIGDIR}/source.txt" 
    daemon --pidfile="$PIDFILE" "/tmp/${APPNAME} ${CONFIGDIR}/${CONFIG} >> /tmp/console.log 2>&1 &" 
    RETVAL=$? 
    [ $RETVAL -eq 0 ] && { 
      touch $LOCKFILE 
      pidof $APPNAME > $PIDFILE 
    } 
    return $RETVAL 
} 

stop() { 
    echo -n $"Stopping $APPNAME:" 
    killproc -p "$PIDFILE" $APPNAME 
    RETVAL=$? 
    echo 
    [ $RETVAL -eq 0 ] && rm -f $LOCKFILE $PIDFILE 
    return $RETVAL 
} 

case "$1" in 
    start) 
      start 
      ;; 
    stop) 
      stop 
      ;; 
    status) 
      status -p "$PIDFILE" "$APPNAME" 
      ;; 
    restart) 
      stop 
      start 
      ;; 
    *) 
      echo "Usage $prg {start|stop|status|restart}" 
      exit 1 
      ;; 
esac 
exit $RETVAL 
+0

カスタム 'init.d'スクリプトを含めることができますか? – StephenG

+0

「カスタムinit.d」とは何ですか? – Jakuje

+0

@StephenG added – georges

答えて

0

私の周りに仕事が見つかりました:

ssh -t -t [email protected] 'sudo bash -s' < '/tmp/start_test.sh' 

して、サーバー上:

/tmp/start_test.shを

#!/bin/bash 

sudo service test start >> /tmp/start.log 

exit 0 
0

私はこれをテストしました正常に:

echo "sudo service test start && exit" | python -c 'import pty, sys; pty.spawn(sys.argv[1:])' ssh [email protected] 
関連する問題