В Thu, 30 Oct 2014 13:29:10 -0400
"Fisher, Charles J. (Top Echelon)" <charles.fis...@alcoa.com> пишет:

> 
> On Tue, 28.10.14 15:08, Fisher, Charles J. (Top Echelon) 
> (charles.fis...@alcoa.com) wrote:
> 
> >> Is this the best way to start Oracle?
> >> [Service]
> >> Environment=ORACLE_SID=foo ORACLE_HOME=/home/oracle/Ora12c/db
> >> ExecStart=/bin/ksh -c 'print "connect / as sysdba \n startup \n quit" | 
> >> $ORACLE_HOME/bin/sqlplus -silent /nolog'
> >> ExecStop=/bin/ksh -c 'print "connect / as sysdba \n shutdown
> >> immediate \n quit" | $ORACLE_HOME/bin/sqlplus -silent /nolog'
> 
> >This looks quite suspicious as you spawn a shell and keep it
> >running. It's fine to run shells and then finally exec the real
> >binary, replacing the shell process, but keeping the shell around
> >would tell systemd that the shell was the actual daemon process.
> 
> It doesn't work like that. The ksh dies when sqlplus exits, after it forks 
> the instance background processes.
> 
> These are the binaries of interest:
> 
> -bash-4.2$ ls -l $ORACLE_HOME/bin/sqlplus $ORACLE_HOME/bin/oracle 
> $ORACLE_HOME/bin/tnslsnr
> -rwsr-s--x. 1 oracle dba 323649834 Aug 13 10:47 
> /home/oracle/Ora12c/db/bin/oracle
> -rwxr-x--x. 1 oracle dba     10525 Aug 13 10:46 
> /home/oracle/Ora12c/db/bin/sqlplus
> -rwxr-x--x. 1 oracle dba    866455 Aug 13 10:46 
> /home/oracle/Ora12c/db/bin/tnslsnr
> 
> The real problem is the tnslsnr. It can service multiple instances. If I run 
> those instances in separate cgroups, and the listener can only be a member of 
> one cgroup, then the listener's children die if the listener process is 
> disturbed. This means all DB sessions are cut when the listener is stopped.
> 
> It looks like systemd will force separate listeners for all Oracle instances, 
> and the usual port number (1521) can't multiplex them (unless a single cgroup 
> is used).
> 

Even in this case behavior is wrong. Currently stopping listener does
not affect existing database connections. Killing all client processes
on listener stop will be rather strong regression.

How ssh does it? It is something similar - master service that need to
spawn multiple independent children.
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to