powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Помогите написать скрипт на bash
8 сообщений из 8, страница 1 из 1
Помогите написать скрипт на bash
    #33690388
diablero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача:
Скрипт должен иметь входной параметр: 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
Помогите написать скрипт на bash
    #33691249
no-dashi-v2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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
Помогите написать скрипт на bash
    #33693215
diablero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как запустить в фоновом режиме?
...
Рейтинг: 0 / 0
Помогите написать скрипт на bash
    #33693306
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
java SomeClass &

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

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

А можно попдробней, про то как получить PID
...
Рейтинг: 0 / 0
Помогите написать скрипт на bash
    #33696139
no-dashi-v2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
diableroА можно попдробней, про то как получить PID
А еще можно (точнее нужно) осилить книжку по UNIX где вам расскажут что такое PID, PPID, GID, UID, EGID и EUID...
...
Рейтинг: 0 / 0
Помогите написать скрипт на bash
    #33696382
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PID и будет $! т.е. ID последнего запущенного в фоне процесса
согласен с no-dashi-v2
...
Рейтинг: 0 / 0
Помогите написать скрипт на bash
    #33747096
diablero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То что получилось:
Код: 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
8 сообщений из 8, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Помогите написать скрипт на bash
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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