精华内容
下载资源
问答
  • linux自定义服务

    千次阅读 2011-03-16 22:32:00
    oracle开机启动,linux自定义服务,linux开机启动

     Linux系统一共有7个运行级别:0-6.其中0是关机、3是多用户有网络模式、5是图形

    界面、6是重新启动。系统启动时,在进行一些必要的初始化工作后,就会根据/etc/inittab

    里的配置决定运行级别,例如inittab里的配置是id:3:initdefault:,3就说明系统默认的运

    行级别是3。系统就会自动去加载/etc/rc.d/rc3.d里面定义的服务。但是系统共有7个运行级

    别,而有的服务需要在多个运行级别里都要加载,如果每个服务都在/etc/rc.d/rcN.d里直接

    定义的话,就会出现多个副本,不便于维护,所以linux里的服务一般都定义

    在/etc/rc.d/init.d里面,而/etc/rc.d/rcN.d里面只维护一个连接。在/etc/rc.d/rcN.d里

    面我们会看到两种格式的文件名,一种是以KNN开头的,一种是以SNN开头的,后面的内容就

    和/etc/rc.d/init.d定义的服务名相同了。K代表关闭(kill),即系统启动时不启动该服务,S

    代表启动(start),NN代表启动顺序,序号越小,越早启动。/etc/rc.d/rcN.d里面的链接文

    件可由chkconfig命令自动创建,不需要手动创建,当然也可以手动创建。下面我们创建一服

    务,该服务就是在系统启动时向/tmp/myservice.log追加一句话,我们命名为myservice,具

    体步骤如下:
    #cd /etc/rc.d/init.d
    #touch myservice
    #chmod u+x myservice
    myservice的内容为:
    #!/bin/bash
    #chkconfig:345 66 33
    #descriptioin:this is my service
    echo "My service is auto runned at `date`">>/tmp/myservice.log

    注意#chkconfig:345 66 33必须有,其中345表示当系统运行在345级别时自动启动该服务,

    在其他级别不启动;66表示启动的顺序,33表示关闭顺序,数字越小越早执行。
    #description:也必须有,否则我们接下来运行的chkconfig会报错。
    然后我们运行
    #chkconfig --add myservice
    服务到此定义完毕,下次启动时,我们会在/tmp/myservice.log看到一句话:
    My service is auto runned at Thu Mar 17 06:02:59 CST 2011
    这表明我们的服务在系统启动时被调用了。
    让我们看一下 chkconfig --add myservice到底做了什么事情。其实事情的真相很简单,让

    我们进入/etc/rc.d/rc3.d
    #cd /etc/rc.d/rc3.d ---进入 3,4,5都一样,这代表着我们在myservice文件

    #chkconfig:345 66 33 里的345。
    #ls *myservice 我们会看到S66myservice,用file命令查看下文件格式,我们会发现它是一

    个链接到/etc/rc.d/init.d/myservice 的一个连接文件。正如前面所说,S代表启动。
    在进入/etc/rc.d/rc1.d,这里面会有一K66myservice,表示服务在这个级别不启动。

    chkconfig做的事情其实就这么简单,我们也可以手动来完成这些事情。本人比较懒,更何况

    还有更重要的事情要做,所以就不在详述。

    下面,下面,下面我们要做什么呢?。。。

    服务在系统启动时是自动加载了,但是它什么时候关闭呢?关闭它时怎么调用呢?

    查看/etc/rc.d/rc0.d/S00killall可以发现,系统在关闭时,会去/var/lock/subsys里查找

    ,如果找到服务名,就会运行下面命令/etc/init.d/servicename stop 这条命令。
    所以如果我们希望系统关闭时同样调用我们服务的关闭函数,我们就必须在服务启动时,

    在/var/lock/subsys里创建一和我们服务名相同的文件。
    修改/etc/rc.d/init.d/myservice如下:

    #!/bin/bash
    #chkconfig:345 66 33
    #descriptioin:this is my service
    start()
    {
     echo "My service is auto runned at `date`">>/tmp/myservice.log
     touch /var/lock/subsys/myservice
    }
    stop()
    {
     echo "My service is auto stopped at `date`">>/tmp/myservice.log
     rm -f /var/lock/subsys/myservice
    }
    status()
    {
     echo " What do you want to do"
    }

    case "$1" in
    start)
     start
     ;;
    stop)
     stop
     ;;
    status)
     status
     ;;
    restart|reload)
     stop
     start
     ;;
    *)
    exit 1
    esac
    exit 0

    很简单,在启动时运行 start 函数,在关闭时运行 stop函数。
    然后运行chkconfig myservice reset,再次重新启动后,奇迹发生了。我们

    在/tmp/myservice.log中发现了两句话,关闭时的那句话也打印出来了。到此,我们自定义

    的服务算是五脏俱全了。

    下面我们举一有一点实际意义的例子,在系统开机时自动运行oracle 数据库,在系统关闭前

    ,自动关闭oracle数据库,步骤如下:
    cd /etc/rc.d/init.d
    touch oracle
    chmod u+x oracle
    oracle文件内容如下:
    #!/bin/bash
    #chkconfig:345 66 66
    #description:oracle service

     

    start()
    {
     su - oracle -c 'lsnrctl start'
     su - oracle -c 'sqlplus -s / as sysdba <<EOF
      startup;
      exit;
      EOF'
     touch /var/lock/subsys/oracle
    }
    stop()
    {
     su - oracle -c 'sqlplus -s / as sysdba <<EOF
      shutdown immediate;
      exit;
      EOF'
     su - oracle -c 'lsnrctl stop'
     rm -f /var/lock/subsys/oracle

    }
    case "$1" in
    start)
     start
     ;;
    stop)
     stop
     ;;
    *)
     exit 1
    esac
    exit 0

    运行chkconfig --add oracle添加oracle服务,这样在开机时oracle 数据库和监听就都会自

    动启动了,而且在系统关闭前自动关闭

    展开全文
  • linux自定义开机启动脚本

    万次阅读 多人点赞 2018-11-29 19:06:35
    使用IDEA生成的linux系统可执行程序.sh文件,手动启动没有问题,开机自启动踩了不少坑,网上提供的三种方法都不适合, 有一种方法是在/etc/rc.local文件中加上启动脚本的命令,我加上之后,出现如下错误 我猜...

    一、概述

    使用IDEA生成的linux系统可执行程序.sh文件,手动启动没有问题,开机自启动踩了不少坑,网上提供的三种方法都不适合,

    有一种方法是在/etc/rc.local文件中加上启动脚本的命令,我加上之后,出现如下错误

    enter image description here

    我猜可能是mysql服务还没有启动,导致连接请求被拒绝。

    因为我一直想将生成的这个.sh文件开机自启动,但是无奈总是不尽人意,后来换个思路,通过xshell脚本来启动这个.sh文件,搞定!

    二、自定义开机启动脚本

    在/etc/profile.d/目录下创建rds_start.sh文件

    vi rds_start.sh
    

    输入以下内容:

    #!/bin/sh
    #chkconfig: 2345 80 90
    #description:rds_start.sh
    cd /home/softs/rds/bin/
    nohup ./rds_start.sh &
    

    其中其三行是固定格式

    #!/bin/sh
    是指此脚本使用/bin/sh来解释执行
    
    #chkconfig: 2345 20 80
    2345表示系统运行级别是2,3,4或者5时都启动此服务,20,是启动的优先级,80是关闭的优先级,如果启动优先级配置的数太小时如0时,则有可能启动不成功,因为此时可能其依赖的网络服务还没有启动,从而导致自启动失败。
    
    #description:rds_start.sh
    是描述信息
    

    wq!保存后 使用chmod设置可执行权限

    chmod +x rds_start.sh
    

    然后将其拷贝到/etc/init.d/目录下,否则添加服务不成功:

    cp rds_start.sh /etc/init.d/
    

    添加到系统服务

    chkconfig --add rds_start.sh
    

    设置开机启动

    chkconfig rds_start.sh on
    

    然后重启linux

    shutdown -r now
    

    重启之后连接查看效果:

    ps -ef | grep rds
    

    enter image description here

    开机自启动成功!

    备注

    pom.xml中加入以下插件可打包生成.sh文件

    <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>appassembler-maven-plugin</artifactId>
            <version>1.10</version>
            <configuration>
                <configurationDirectory>conf</configurationDirectory>
                <includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
                <repositoryLayout>flat</repositoryLayout>
                <assembleDirectory>${project.build.directory}/rds</assembleDirectory>
                <repositoryName>libs</repositoryName>
                <extraJvmArguments>-Xms1024m -Xmx1024m</extraJvmArguments>
                <!-- 生成linux -->
                <binFileExtensions>
                    <unix>.sh</unix>
                </binFileExtensions>
                <programs>
                    <program>
                        <mainClass>com.dj.rds.Application</mainClass>
                        <name>rds_start</name>
                    </program>
                </programs>
            </configuration>
        </plugin>
    

    maven打包命令

    package appassembler:assemble
    

    参考地址:https://blog.csdn.net/achilles12345/article/details/52150867

    访问我的达人课

    访问我的博客 Wang's Blog

    关注我的微信公众号获取更多资源

    展开全文
  • Linux 自定义网桥配置静态 IP

    千次阅读 2019-05-29 17:31:21
    准备工作,先安装一些基本工具: yum -y update yum install -y vim wget curl ... 修改配置文件配置网络(注意:ifcfg-enp0s3是运行ip a查询到的网卡名称) vim /etc/sysconfig/network-scripts/ifcfg-...

    准备工作,先安装一些基本工具:

    yum -y update
    yum install -y vim wget curl net-tools bridge-utils bind-utils traceroute mtr telnet
    

    修改配置文件配置网络(注意:ifcfg-enp0s3是运行ip a查询到的网卡名称)

    vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
    

    进行以下两处修改

    BRIDGE="xxx-bridge"
    BOOTPROTO="none"
    

    修改保存后,创建网桥配置文件(注意:ifcfg-xxx-bridge 是之前配置 BRIDGE 参数的名称)

    vim /etc/sysconfig/network-scripts/ifcfg-xxx-bridge
    

    并添加如下代码(注意,IPADDR 是自己设置的静态 ip )

    TYPE=Bridge
    BOOTPROTO=static
    IPADDR=192.168.1.214
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    PREFIX=24
    DNS1=192.168.1.1
    NAME=xxx-bridge
    ONBOOT=yes
    DEVICE=xxx-bridge
    

    保存退出,运行

    systemctl restart network
    

    重新用设置的新ip连接服务器,运行查看

    brctl show
    

    搞定!

    展开全文
  • 想不想你的Linux登录界面个性一些?可以通过修改/etc/motd文件或/etc/issue文件的方式实现。/etc/issue文件的使用方法与/etc/motd文件相差不大,它们主要区别在于:当一个网络用户或通过串口登录系统上时,/etc/...

    想不想你的Linux登录界面个性一些?可以通过修改/etc/motd文件或/etc/issue文件的方式实现。/etc/issue文件的使用方法与/etc/motd文件相差不大,它们主要区别在于:当一个网络用户或通过串口登录系统上时,/etc/issue的文件内容显示在login提示符之前的,而/etc/motd内容显示在用户成功登录系统之后的。

    可以通过修改/etc/issue文件或者修改/etc/motd文件的方式,二者选择其一即可,大家可以根据实际情况自行选择。一般对于网站运维人员来说,可以自定义图案,标注运维人员姓名、联系方式、服务器运行情况、登录欢迎词等内容。

    方法一、修改/etc/issue

    1、修改/etc/issue文件

    vi etc/issue

    2、输入自定义内容

         へ      /|
      /\7        ∠_/
     / │     / /
    │  Z _,< /  / `
    │     ヽ   /  〉
    Y          `   /  /
    ●  ●  〈  /
    () へ    |  \〈
    > _  ィ  │  //
    / へ   / < | \\
    ヽ_     (_/ │//
     7             |/
    >―r ̄ ̄  ―_/

    3、:wq保存,重新连接Linux就可以看到了。

    方法二、修改/etc/motd

    1、修改/etc/motd文件

    vi /etc/motd

    输入自定义内容:

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    +                                                                            +
    +                                                                            +
    +                                                                            +
    +                            运维负责人:XXXXXXX                              + 
    +                            联系电话:1234567                                +
    +                                                                            +
    +                                                                            +
    +                                                                            +
    +                                                                            +
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    2、:wq保存,然后重新连接Linux就可以看到了。

    展开全文
  • 收发实现代码 ...使用回环网络lo,或者以太网都可以,然后使用wireshark抓包 其他类似参考: https://blog.csdn.net/ld11690/article/details/80360229 https://blog.csdn.net/dean_gdp/artic...
  • Linux自定义Yum源全解析

    千次阅读 2017-01-18 10:03:18
    //根据自己的网络跟换IP gpgcheck=0 enabled=1 5,然后保存退出 执行yum clean all  6,就像联网了一样执行yum操作就ok了 7,之后再有新加入包执行如下命令更新即可:...
  • Linux自定义镜像文件安装配置(超详细版本)1.0

    千次阅读 多人点赞 2020-05-18 20:41:18
    1.Linux镜像文件配置 第1步 第2步 第3步 第4步 第5步 第6步 第7步 第8步 第9步 第10步 第11步 第12步 第13步 第14步 第15步 第16步 第17步 第18步 第19步 第20步 第21步 2.配置网络 2.
  • 一种安全,功能丰富,可自定义的嵌入式Linux网络设备,可用于各种网络拓扑。 尽管它可以以其他方式使用; 它主要用作Internet网关,路由器,防火墙和无线访问点。 LEAF文档Wiki http://bering-uclibc.zetam.org
  • Linux 下 NetworkManager 自定义 DNS

    千次阅读 2017-09-16 14:55:01
    Linux 下 NetworkManager 自定义 DNS
  • 于需要用伪造的ip地址, 所以需要自定义ip头, 这需要对套接字属性进行设置: int opt = 1; setsockopt(sockfd, IPPROTO_IP, IP_HDRINCL, &opt, sizeof(opt));   2. 为了更方便的填充ip报文头及tcp报文头, ...
  • 2.4: 配置Linux网络 、 源码编译安装 、 自定义Yum仓库 、 日志管理(1).docx
  • 选择通过NFS共享方式完成软件分发本地源配置,pxe网络安装linuxmint16 1、安装nfs-kernel-server,tftpd-hpa,dhcp3-server apt-get install dhcp3-server nfs-kernel-server tftpd-hpa 2、新建文件夹/home/testom/...
  • 桥接网络2.host网络3.none模式二、Docker自定义网络2.创建自定义网桥3.双网卡实现不同网段间通信三、Docker容器通信1.内部访问外部2.外部访问内部四、跨主机容器网络1.跨主机同网段容器通信2.跨主机不同网段容器通信...
  • linux yum添加自定义

    2017-02-23 14:11:16
    在国内复杂的网络环境下,我们使用yum时部分的包可能无法请求导致无法安装。可以通过修改yum为国内源去解决或者添加指定package的源解决。具体配置方法
  • 套接字描述符和通用文件描述符在形式上没有区别,那么如何判断一个文件描述符是否...下面我们就简单的自定义一个函数issockettype,用于套接字描述符判定。#include #include #include #include #include #include
  • # yum intsll ntp 要开始自动时间同步到远程NTP服务器 # timedatectl set-ntp true Failed to set ntp: NTP not supported.
  • 一般拿到一个 Linux SDK 的时候,方案商已经内置了很实用的 busybox,用来执行 poweroff / reboot 命令。但嵌入式开发时,有时需要自定义执行 reboot / poweroff 之后的一些行为。本文就是负责简单易懂地解释如何...
  • 这种虚拟机与虚拟机之间通过虚拟交换机互联,但是该交换机并不与主机相连的模式,就是自定义网络。 2.仅主机 这种虚拟机与虚拟机之间通过虚拟交换机互联,且该交换机并与主机相连的模式,就是仅主机模式。仅主机...
  • Docker 自定义容器网络

    2020-10-01 16:34:59
    CNM&libnetwork libnetwork是Docker团队将Docker的网络功能从Docker的核心代码中分离出来形成的一个单独...Sandbox:容器的网络栈,包含interface,路由表,DNS设置等,可以看做就是linux network类型的namesp..
  • Linux操作系统CentOS自定义安装详解

    千次阅读 2019-10-22 11:26:20
    自定义分区结束 、 系统安装完毕 配置系统网络(动态) 打开如下文件 重启网卡 配置系统网络(静态) 第一步 查看虚拟机唯一标识(MAC地址) 查看虚拟机设置 MAC地址需要详细记录(很关键) 第二步 ...
  • linux下,有时候我们想给一个程序设置代理,但是程序自身却不具备设置代理的配置选项,这时候并不是无法给程序设置代理,今天奶牛为大家推荐一款比较实用的linux下的自定义设置程序代理的工具proxychains。...
  • 自定义网络需要再开启一台宿主机server2 2.自定义网络 自定义网络需要使用create命令,先来看看create命令可以跟哪些参数 刚才原生网络不存在域名解析,但是自定义网络存在域名解析 (1)bridge模式 创建自定义的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 155,007
精华内容 62,002
关键字:

linux自定义网络

linux 订阅