Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Помогите написать скрипт на bash / 8 сообщений из 8, страница 1 из 1
26.04.2006, 06:27:11
    #33690388
diablero
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать скрипт на bash
Задача:
Скрипт должен иметь входной параметр: start и stop
start - В теле скрипта необходимо запустить в фоновом режиме java программу
stop - kill java программу

Вот пример запуска как демона на Perl.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
#!/usr/bin/perl	
use POSIX qw(setsid);	
chdir '/'                 or die "Can't chdir to /: $!";	
umask 0;	
open STDIN, '/dev/null'   or die "Can't read /dev/null: $!";	
open STDOUT, '>/dev/null' or die "Can't write to /dev/null: $!";	
open STDERR, '>/dev/null' or die "Can't write to /dev/null: $!";	
defined(my $pid = fork)   or die "Can't fork: $!";	
exit if $pid;	
setsid                    or die "Can't start a new session: $!";	
system("java YourClassName");
...
Рейтинг: 0 / 0
26.04.2006, 12:25:17
    #33691249
no-dashi-v2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать скрипт на bash
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
#!/bin/bash

if [ "_$1" = "_start" ] ; then
    cd /usr/local/somedir
    java SomeClass
    exit
fi

if [ "_$1" = "_stop" ] ; then
    cd /usr/local/somedir
    killall -TERM java
fi
...
Рейтинг: 0 / 0
27.04.2006, 07:59:21
    #33693215
diablero
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать скрипт на bash
А как запустить в фоновом режиме?
...
Рейтинг: 0 / 0
27.04.2006, 09:10:01
    #33693306
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать скрипт на bash
java SomeClass &

после этого следует куда-нить записать переменную $! - это будет ID процесса и потом в сеции stop можно будет убивать процесс по pid
...
Рейтинг: 0 / 0
28.04.2006, 06:05:21
    #33696129
diablero
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать скрипт на bash
--null--java SomeClass &

после этого следует куда-нить записать переменную $! - это будет ID процесса и потом в сеции stop можно будет убивать процесс по pid

А можно попдробней, про то как получить PID
...
Рейтинг: 0 / 0
28.04.2006, 06:34:01
    #33696139
no-dashi-v2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать скрипт на bash
diableroА можно попдробней, про то как получить PID
А еще можно (точнее нужно) осилить книжку по UNIX где вам расскажут что такое PID, PPID, GID, UID, EGID и EUID...
...
Рейтинг: 0 / 0
28.04.2006, 09:48:47
    #33696382
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать скрипт на bash
PID и будет $! т.е. ID последнего запущенного в фоне процесса
согласен с no-dashi-v2
...
Рейтинг: 0 / 0
24.05.2006, 05:31:45
    #33747096
diablero
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать скрипт на bash
То что получилось:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
#!/bin/sh
#

RETVAL= 0 

RES_COL= 60 
MOVE_TO_COL="echo -en \\033[${RES_COL}G"
SETCOLOR_SUCCESS="echo -en \\033[1;32m"
SETCOLOR_FAILURE="echo -en \\033[1;31m"
SETCOLOR_NORMAL="echo -en \\033[0;39m"
PIDFILE=/var/run/SCServer.pid

echo_success() {
  $MOVE_TO_COL
  echo -n "[  "
  $SETCOLOR_SUCCESS
  echo -n $"OK"
  $SETCOLOR_NORMAL
  echo "  ]"
  return  0 
}

echo_failure() {
  $MOVE_TO_COL
  echo -n "["
  $SETCOLOR_FAILURE
  echo -n $"FAILED"
  $SETCOLOR_NORMAL
  echo "]"
  return  1 
}

start() {
        KIND="SCServer"
	local pid
 	read pid < $PIDFILE
	echo -n $"Starting $KIND services: "
	if [ -z "$pid" ] ; then
		java -jar /usr/SCServer/SCServer.jar > /dev/null  2 >& 1  &
		echo $! > $PIDFILE
		echo_success
		exit  0 
	fi
	echo_failure
	exit  1 
}	

stop() {
        KIND="SCServer"
	local pid
 	read pid < $PIDFILE
	echo -n $"Shutting down $KIND services(pid $pid): "
	if [ -z "$pid" ] ; then
		echo_failure
		exit  1 
	fi
        kill -TERM $pid >/dev/null  2 >& 1 
	echo "" > $PIDFILE
	#echo -e $"\t \t [ OK ]"
	echo_success
}	

restart() {
	stop
	start
}	


case "$1" in
  start)
  	start
	;;
  stop)
  	stop
	;;
  restart)
  	restart
	;;
  *)
	echo $"Usage: $0 {start|stop|restart}"
	exit  1 
esac

exit $?

...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Помогите написать скрипт на bash / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]