Debian在启动时db2执行sql脚本命令指定命令的脚本是哪一个

- 系统光盘下载网站!
当前位置: >
> 详细页面
Debian如何设置程序开机自启动(2)
来源:系统之家
作者:qipeng
  启用脚本使用 start-stop-daemon 命令,参数为:
  -S, --start 启动服务
  -K, --stop 停止服务
  -q, --quiet 静默启动,不输出日志
  -b, --background 后台启动
  -m, --make-pidfile 创建 pid 文件
  -p, --pidfile 指定 pid 文件
  -c, --chuid 指定启动用户
  -a, --startas pathname 进程路径
  -R, --retry timeout|schedule 重试次数
  需要将 USER 修改为自己的用户名称
  配置文件位于 /home/$USER/.aria2/aria2.conf
  更多参数含义可以通过 man start-stop-daemon 进行查看
  代码如下
  修改脚本权限
  sudo chmod +x /etc/init.d/aria2c
  测试脚本
  sudo /etc/init.d/aria2c start
  sudo /etc/init.d/aria2c status
  sudo /etc/init.d/aria2c stop
  sudo /etc/init.d/aria2c status
  sudo /etc/init.d/aria2c restart
  2. 使用 insserv 设置自动启动
  添加服务
  sudo insserv /etc/init.d/aria2c #添加服务
  sudo insserv -r /etc/init.d/aria2c #删除服务
  重启测试
  sudo reboot
  sudo /etc/init.d/aria2c status
  上面就是Debian系统设置程序开机自启动的方法,你需要添加自启动服务的脚本文件,并使用start-stop-daemon 命令。
栏目热门教程
人气教程排行
热门系统下载
本站发布的系统与软件仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,否则后果自负,请支持购买微软正版软件!如侵犯到您的权益,请及时通知我们,我们会及时处理。
Copyright&2011 系统之家(www.xitongzhijia.net) 版权所有 闽ICP备号-1随笔- 111&
评论- 233&
&&&&&&&&&&&
debian开机启动管理(转文)
linux下,services的启动、停止等通常是通过/etc/init.d的目录下的脚本来控制的。在启动或改变运行级别是在/etc/rcX.d中来搜索脚本。其中X是运行级别。
比如Apache2,安装完成后,默认或启动。比如我安装了vagrant的LMPA的box。需要禁止掉自启动,就需要禁止掉这个服务,然后在需要的时候使用
/usr/sbin/apachectl start
#/etc/init.d/apache2 start
在debian中使用 update-rc.d命令来实现
update-rc.d [-n] [-f] &basename& remove
update-rc.d [-n] &basename& defaults [NN | SS KK]
update-rc.d [-n] &basename& start|stop NN runlvl [runlvl] [...] .
update-rc.d [-n] &basename& disable|enable [S|2|3|4|5]
-n: not really
update-rc.d -f apache2 remove # -f 为强制删除
update-rc.d apache2 defaults
并且可以指定该服务的启动顺序:
update-rc.d apache2 defaults 90
还可以更详细的控制start与kill顺序:
update-rc.d apache2 defaults 20 80
其中前面的20是start时的运行顺序级别,80为kill时的级别。也可以写成:
update-rc.d apache2 start 20 2 3 4 5 . stop 80 0 1 6 .
其中0~6为运行级别。 update-rc.d命令不仅适用Linux服务,编写的脚本同样可以用这个命令设为开机自动运行
在debian6中使用update-rc.d会报错,如下:
  update-rc.d: using dependency based boot sequencing
可以使用&insserv&命令来代替&update-rc.d
insserv [&options&] [init_script|init_directory]
Available options:
-h, --help
This help.
-r, --remove
Remove the listed scripts from all runlevels.
-f, --force
Ignore if a required service is missed.
-v, --verbose
Provide information on what is being done.
-p &path&, --path &path&
Path to replace /etc/init.d.
-o &path&, --override &path& Path to replace /etc/insserv/overrides.
-c &config&, --config &config&
Path to config file.
-n, --dryrun
Do not change the system, only talk about it.
-d, --default
Use default runlevels a defined in the scripts
比如insserv -r apache2
阅读(...) 评论()本文论述基于如下环境:Debian版本为:Debian GNU/Linux 3.1Linux内核版本为:2.6.15.6中文输入法:fcitx本文参考:man手册里的Xsession(5)安装了Linux后当然希望能进入XWindow,象在Windows一样方便地工作,于是大家都可能用过startx命令,也可能是直接在XWindow登录界面进入XWindow.这两种方式的XWindow启动过程有没有区别呢?如果你没有做过个性化设置可能体会不到,但如果你设置过中文输入法,不管是用SCIM还是fcitx,可能都有过设置输入法为随XWindow启动的经验。朋友们开始修改各种启动脚本,经常可能会修改到的方法有:1、修改/etc/X11/xinit/xinitrc2、修改/etc/X11/Xsession3、在/etc/X11/Xsession.d目录下增加一个自定义的脚本4、修改$HOME/.xsession5、修改$HOME/.xinitrc6、修改/etc/X11/xdm/Xsession……总之,看起来是八仙过海各有各的神通了。这些方法有没有不同?为什么有时候明明设置好了,startx起来可以用了,但重启在XWindow管理界面登录后却不能用了?为什么有时从XWindow管理界面登录后可用,但startx后却用不了?下面我们一起来分析一下吧。关于本文档:/**********************************************************************filename: Debian Linux下XWindow系统启动脚本分析*purpose: XWindow启动过程研究*wrote by: zhoulifa() 周立发(http://zhoulifa.bokee.com)Linux爱好者 Linux知识传播者 SOHO族 开发者 最擅长C语言*date time: 23:22:00*Note: 任何人可以任意复制代码并运用这些文档,当然包括你的商业用途* 但请遵循GPL*********************************************************************/先看一下/etc/X11/Xsession脚本文件内容,原文内容如下:#!/bin/sh## /etc/X11/Xsession## global Xsession file -- used by display managers and xinit (startx)# $Id: Xsession -11 07:11:05Z branden $set -ePROGNAME=Xsessionmessage () {  # pretty-print messages use xmessage if it  # is available and $DISPLAY is set  MESSAGE=&$PROGNAME: $*&  echo &$MESSAGE& | fold -s -w ${COLUMNS:-80} &&2  if [ -n &$DISPLAY& ] && which xmessage & /dev/null 2&&1; then    echo &$MESSAGE& | fold -s -w ${COLUMNS:-80} | xmessage -center -file -  fi}message_nonl () {  # pretty-print messages of arbitrary length (no trailing newline); use  # xmessage if it is available and $DISPLAY is set  MESSAGE=&$PROGNAME: $*&  echo -n &$MESSAGE& | fold -s -w ${COLUMNS:-80} &&2;  if [ -n &$DISPLAY& ] && which xmessage & /dev/null 2&&1; then    echo -n &$MESSAGE& | fold -s -w ${COLUMNS:-80} | xmessage -center -file -  fi}errormsg () {  # exit script with error  message &$*&  exit 1}internal_errormsg () {  # ex essentially a &THIS SHOULD NEVER HAPPEN& message  # One big call to message() for
if we had two then  # the user would have dismissed the error we want reported before seeing the  # request to report it.  errormsg &$*& \           &Please report the installed version of the \&xfree86-common\&& \           &package and the complete text of this error message to& \           &&debian-x@lists.debian.org&.&}# initialize variables for use by all session scriptsOPTIONFILE=/etc/X11/Xsession.optionsSYSRESOURCES=/etc/X11/XresourcesUSRRESOURCES=$HOME/.XresourcesSYSSESSIONDIR=/etc/X11/Xsession.dUSERXSESSION=$HOME/.xsessionALTUSERXSESSION=$HOME/.XsessionERRFILE=$HOME/.xsession-errors# attempt to
abort if we cannotif touch &$ERRFILE& 2& /dev/null && [ -w &$ERRFILE& ] &&  [ ! -L &$ERRFILE& ]; then  chmod 600 &$ERRFILE&elif ERRFILE=$(tempfile 2& /dev/null); then  if ! ln -sf &$ERRFILE& &${TMPDIR:=/tmp}/xsession-$USER&; then    message &warning: unable to symlink \&$TMPDIR/xsession-$USER\& to& \             &\&$ERRFILE\&; look for session log/errors in& \             &\&$TMPDIR/xsession-$USER\&.&  fielse  errormsg &unable to create X session log/ aborting.&fiexec &&&$ERRFILE& 2&&1echo &$PROGNAME: X session started for $LOGNAME at $(date)&# is our session script directory present?if [ ! -d &$SYSSESSIONDIR& ]; then  errormsg &no \&$SYSSESSIONDIR\& aborting.&fi# Attempt to create a file of non-zero length in / a full filesystem can# cause mysterious X session failures.  We do not use touch, :, or test -w# because they won't actually create a file with contents.  We also let standard# error from tempfile and echo go to the error file to aid the user in# determining what went wrong.WRITE_TEST=$(tempfile)if ! echo &*& &&&$WRITE_TEST&; then  message &warning: unable to write to ${WRITE_TEST%/*}; X session may exit& \          &with an error&firm -f &$WRITE_TEST&# Use run-parts to source every file in t we source# instead of executing so that the variables and functions defined above# are available to the scripts, and so that they can pass variables to each# other.SESSIONFILES=$(run-parts --list $SYSSESSIONDIR)if [ -n &$SESSIONFILES& ]; then  for SESSIONFILE in $SESSIONFILES; do    . $SESSIONFILE  donefiexit 0此文件的第五行“# global Xsession file -- used by display managers and xinit (startx)”已经说明/etc/X11/Xsession脚本是大家公用的,无论你是用XWindow管理器(比如kdm、gdm、xdm)进入还是通过命令行输入startx(即xinit方式)进入XWindow,都会调用此脚本程序。再看看这个脚本程序做了些什么吧。这一行“SYSSESSIONDIR=/etc/X11/Xsession.d”定义了一个变量指向了目录/etc/X11/Xsession.d,后面又出现一段代码:SESSIONFILES=$(run-parts --list $SYSSESSIONDIR)if [ -n &$SESSIONFILES& ]; then  for SESSIONFILE in $SESSIONFILES; do    . $SESSIONFILE  donefi显然这里是搜索了目录/etc/X11/Xsession.d里面所有的脚本并一一执行完毕。同时请注意有这么两行:USERXSESSION=$HOME/.xsessionALTUSERXSESSION=$HOME/.Xsession在这里并没有看到使用这两个变量,那么在这个脚本里定义来做什么?下面再看一下脚本/etc/X11/Xsession.d/50xfree86-common_determine-startup里的内容,原文如下:# $Id: 50xfree86-common_determine-startup -23 03:18:32Z branden $# This file is sourced by Xsession(5), not executed.# If no X session startup program was passed to the Xsession script as an# argument (e.g., by the display manager), or if that program was not# executable, fall back to looking for a user's custom X session script, if# allowed by the options file.if [ -z &$STARTUP& ]; then  if grep -qs ^allow-user-xsession &$OPTIONFILE&; then    for STARTUPFILE in &$USERXSESSION& &$ALTUSERXSESSION&; do      if [ -e &$STARTUPFILE& ]; then        if [ -x &$STARTUPFILE& ]; then          STARTUP=&$STARTUPFILE&        else          STARTUP=&sh $STARTUPFILE&        fi        break      fi    done  fifi# If there is still nothing to use for a startup program, try the system# default session manager, window manager, and terminal emulator.if [ -z &$STARTUP& ]; then  if [ -x /usr/bin/x-session-manager ]; then    STARTUP=x-session-manager  elif [ -x /usr/bin/x-window-manager ]; then    STARTUP=x-window-manager  elif [ -x /usr/bin/x-terminal-emulator ]; then    STARTUP=x-terminal-emulator  fifi# If we still have not found a startup program, give up.if [ -z &$STARTUP& ]; then  ERRMSG=&unable to start X session ---&  if grep -qs ^allow-user-xsession &$OPTIONFILE&; then    ERRMSG=&$ERRMSG no \&$USERXSESSION\& file, no \&$ALTUSERXSESSION\& file,&  fi  errormsg &$ERRMSG no session managers, no window managers, and no terminal& \           & aborting.&fi# vim:set ai et sts=2 sw=2 tw=80:这一行“# This file is sourced by Xsession(5), not executed.”证明脚本是被之前的/etc/X11/Xsession调用的,而后面这一段:    for STARTUPFILE in &$USERXSESSION& &$ALTUSERXSESSION&; do      if [ -e &$STARTUPFILE& ]; then        if [ -x &$STARTUPFILE& ]; then          STARTUP=&$STARTUPFILE&        else          STARTUP=&sh $STARTUPFILE&        fi        break      fi    done更证明了这一点。在这里脚本搜索用户目录$HOME下的.xsession或.Xsession脚本来执行。(在/etc/X11/Xsession.d目录下还有一些脚本,这里就不再分析了,各位有兴趣可以自己看看)另外来看看/etc/X11/xinit/xinitrc这个脚本,其原文内容如下:##!/bin/sh## $Xorg: xinitrc.cpp,v 1.3
19:54:30 cpqbld Exp $### /etc/X11/xinit/xinitrc#### global xinitrc file, used by all X sessions started by xinit (startx)### invoke global X session script. /etc/X11/Xsession注意这一句“## global xinitrc file, used by all X sessions started by xinit (startx)”,这说明这个脚本只被xinit调用(即用户输入startx时)。而其执行的最后还是执行了/etc/X11/Xsession脚本。而用户如果用其它XWindow管理界面登录系统时这个脚本里的内容是不会被执行的。最后再来看看/etc/X11/xdm/Xsession这个脚本吧,其原文内容如下:#!/bin/sh## $Xorg: Xsession,v 1.4
19:54:17 cpqbld Exp $##### $XFree86: xc/programs/xdm/config/Xsession,v 1.3
23:45:24 dawes Exp $# invoke global X session script. /etc/X11/Xsession从内容来看,也是最终执行了/etc/X11/Xsession。再看看/etc/X11里面的目录结构:X             Xsession.d        cursors                  gdm        rstart     xinitXF86Config-4  Xsession.options  default-display-manager  lbxproxy   sysconfig  xkbXresources    Xwrapper.config   fonts                    proxymngr  twm        xserverXsession      app-defaults      fs                       rgb.txt    xdm        xsm显然,这里把xinit和xdm、twm及gdm是分开的,在xinit里执行的脚本是不会被xdm里的脚本调用的。从上面对代码的分析,大家可以看到:其实XWindow执行的关键脚本是/etc/X11/Xsession,这个脚本会去/etc/X11/Xsession.d目录里搜索脚本执行,也会去$HOME/下搜索脚本运行,而其它目录xinit、xdm等里面的脚本都会去调用/etc/X11/Xsession这个脚本。所以,如果你想把中文输入法fcitx、SCIM等设置成随Xwindow启动,比如要加入如下脚本:export LC_CTYPE=zh_CN.GBKexport XMODIFIERS=&@im=fcitx&export XIM=fcitxexport XIM_PROGRAM=fcitxfcitx那么可以用如下几种方法:1、加到/etc/X11/Xsession。这种方法对所有启动方法都管理2、在/etc/X11/Xsession.d目录里自己写一个脚本。这种方法也对所有启动方法都管理3、在$HOME目录下生成.xsession或.Xsession脚本。这种方法也对当前登录用户有效4、加到/etc/X11/xinit/xinitrc脚本里。这个方法只对xinit方式(即命令行输入startx)管用。5、加到/etc/X11/xdm/xsession脚本里,只对用xdm管理界面登录的方式管用。另外,关于如何设置中文输入法,请参看我的文章《Linux中中文输入法随XWindow启动的问题》,还有设置中文字体的应用,可以参见我的文章《在Linux里使用Windows的TrueType字体》。大家习惯了在Linux下生活了吗?是否遇到过听歌没声音的情况?看看《Linux下/dev/dsp设备文件的作用》吧
平凡的水果世界,平凡中的不平凡。 今朝看水果是水果 ,看水果还是水果 ,看水果已不是水果。这境界,谁人可比?在不平凡的水果世界里,仁者见仁,智者见智。
正月是农历新年的开始,人们往往将它看作是新的一年年运好坏的兆示期。所以,过年的时候“禁忌”特别多。当然,各个地方的风俗习惯不一样,过年的禁忌也是不一样的。
庞凤山情感处方
请注意使用文明用语
画报点击数0
文章点击数0TENNFY博客 & Debian下开机服务脚本的编写
作者: tennfy
在这篇文章中,我介绍了Debian中设置软件的两种方式,其中tennfy比较推荐的是通过添加来实现软件开机。今天就来详细的介绍下如何编写系统服务脚本。
为方便给大家一个清晰的认识,这里贴出来一个简单的开机服务脚本:
### BEGIN INIT INFO
# Provides:
wechat-task
# Required-Start:
$local_fs $remote_fs $network $syslog
# Required-Stop:
$local_fs $remote_fs $network $syslog
# Default-Start:
# Default-Stop:
# Short-Description: starts the wechat-task
# Description:
starts wechat-task using start-stop-daemon
### END INIT INFO
PATH=/sbin:/usr/sbin:/bin:/usr/bin
GROUP=root
DESC=wechat-task
# Introduce a short description here
NAME=wechat-task
# Introduce the short server's name here
DAEMON=/opt/wechat-task.py
# Introduce the server's location here
DAEMONARGS=&&
PIDFILE=/var/run/$NAME.pid
LOGFILE=/var/log/$NAME.log
. /lib/lsb/init-functions
test -f $DAEMON || exit 0
case &$1& in
start)
log_daemon_msg &Strating $DESC: $NAME&
start-stop-daemon -S -q -b -m -p $PIDFILE -c $USER:$GROUP -a $DAEMON -- $DAEMONARGS
log_end_msg $?
log_daemon_msg &Stopping $DESC: $NAME&
start-stop-daemon -K -q -p $PIDFILE
log_end_msg $?
if [ -e $PIDFILE ]; then
rm $PIDFILE
restart)
status)
start-stop-daemon -T -p $PIDFILE
log_end_msg $?
echo &usage: $NAME {start|stop|restart|status}&
开机服务脚本编写
1、脚本头部注释
在上面的示例中,我们可以看到脚本头部注释对脚本需要的依赖、运行级别、说明做了详细的描述。
一般来说,我们不需要做过多的改动,只需要把Provides、Short-Description、Description修改成你自己的就可以了。
在示例脚本中,我将Provides的名字设为wechat-task,那么我们一般脚本的名字也设置为wechat-task,即脚本执行一般位/etc/init.d/wechat-task xxx。
2、脚本功能实现
在本脚本中支持常用的三种命令:start、stop以及restart。通过执行/etc/init.d/wechat-task start/stop/restart即可实现脚本的启动、关闭及重启。
我们一般采用start-stop-daemon来实现服务守护进程运行,用户在使用该命令时,一般只需替换 $USER、$GROUP、$DAEMON这三个变量的定义即可。
start-stop-daemon的介绍如下:
1.功能作用
启动和停止系统守护程序
/sbin/start-stop-daemon
3.主要参数
-S|--start -- &argument& ... 开启一个系统守护程序,并传递参数给它
-K|--stop 停止一个程序
-T|--status 得到程序的状态
-H|--help 显示帮助信息
-V|--version 打印版本信息
Matching options (at least one is required):
-p|--pidfile &pid-file& pid file to check
-x|--exec &executable& program to start/check if it is running
-n|--name &process-name& process name to check
-u|--user &username|uid& process owner to check
-g|--group &group|gid& 按指定用户组权限运行程序
-c|--chuid &name|uid[:group|gid]&
按指定用户、用户组权限运行程序
-s|--signal &signal& signal to send (default TERM)
-a|--startas &pathname& program to start (default is &executable&)
-r|--chroot &directory& chroot to &directory& before starting
-d|--chdir &directory& change to &directory& (default is /)
-N|--nicelevel &incr& add incr to the process' nice level
-P|--procsched &policy[:prio]&
use &policy& with &prio& for the kernel
process scheduler (default prio is 0)
-I|--iosched &class[:prio]& use &class& with &prio& to set the IO
scheduler (default prio is 4)
-k|--umask &mask& 在开始运行前设置&mask&
-b|--background 后台运行
-m|--make-pidfile 当命令本身不创建pidfile时,由start-stop-daemon创建
-R|--retry &schedule& 等待timeout的时间,检查进程是否停止,如果没有发送KILL信号;
-t|--test 测试模式
-o|--oknodo exit status 0 (not 1) if nothing done
-q|--quiet 不要输出警告
-v|--verbose 显示运行过程信息
开机服务脚本的使用
写好开机服务脚本后,我们将该文件保存为名为wechat-task的文件,并拷贝至/etc/init.d目录下。
需要注意的是,我们要先给它添加执行性权限:
chmod a+x ./wechat-task
然后采用如下方式添加开机服务
update-rc.d xxx defaults
事实上该命令的作用是在rc0.d、rc1.d、、、rc6.d六个目录下建立软连接。
如果想移除该开机服务,可以使用如下代码
update-rc.d -f xxx remove
本文出自 TENNFY博客,转载时请注明出处及相应链接。
本文永久链接: https://www.tennfy.com/4563.html
下一篇文章:
上一篇文章:
您可能还喜欢
免费网上赚钱:
支付宝捐赠本站
若觉得博主的文章对您有些许帮助,请博主喝杯饮料吧!
为了方便交流,建了个qq群,欢迎加群交流:debian系统怎么开机自动启动脚本_百度知道
debian系统怎么开机自动启动脚本
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
主要经营计算机网络服务,设计、制作、代理、发布国内各类广告,健康信息咨询。
32位的xp下玩虚拟机真是伤不起啊。这年头linux占用内存也是突飞猛进,如果要有gnome,kde的话随便开2个虚拟机系统就要超2G的内存,开始爬虚拟内存,卡翻了。还好最开始学linux的时候就是从命令行开始的,如果debian开机直接进命令行的话,内存大概128M就绰绰有余了。redhat系下的linux可以通过init 3,init 5方便的切来切去,今天发现debian系下的init2~5好像都会默认打开gdm3,所以这招不灵了。最先想到的就是Java代码 /etc/init.d/gdm3 stop ,但是这样还是不够精简。
其次的想法是把gdm3这个服务关掉,使用命令Java代码 update-rc.d gdm3 -f remove 把rcX.d文件夹下所有gdm3相关脚本都删了,这样开机启动后就不会有图形菜单了最后采用的方法是改grub,修改/etc/default/grubJava代码 GRUB_CMDLINE_linux_DEFAULT=quiet [b]text[/b] 然后再Java代码 update-grub2 这样普通用户登录就是在命令模式下登录了如果突然要用图形界面,那就Java代码 /etc/init.d/gdm3 start 万事大吉作者 luozhaoyu
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 db2执行sql脚本命令 的文章

 

随机推荐