Linux 操作系统

在 Linux 系统上自动启动服务器

您可以使用 systemdSystem V 初始化系统在 Linux® 操作系统上自动启动服务器。

使用 systemd 初始化来自动启动服务器

要使用 systemd 初始化系统在 Linux® 操作系统上自动启动服务器,请配置并运行 dsmserv.rc 脚本。

准备工作

请确保以下任一项 /usr/bin/systemctl/bin/systemctl 实用程序安装在系统上。

请确保该服务器实例以与实例所有者同名的非 root 用户标识运行。

关于此任务

您可使用 dsmserv.rc 脚本来自动启动或停止服务器实例。

过程

为要自动启动的每个服务器实例完成下列步骤:

  1. 重命名 dsmserv.rc 脚本以匹配服务器实例所有者的名称。 例如,如果服务器实例所有者为 tsminst1 ,并且文件保存在 install_dir/server/bin 目录中,请发出以下命令:
    cp /opt/tivoli/tsm/server/bin/dsmserv.rc /opt/tivoli/tsm/server/bin/tsminst1
  2. 通过运行以下命令来设置对新重命名的脚本的执行许可权。
    chmod +x install_dir/server/bin/instance
    例如:
    chmod +x /opt/tivoli/tsm/server/bin/tsminst1
  3. 如果服务器实例目录不是 home_directory/tsminst1,请在脚本副本中找到以下行:
    instance_dir="${instance_home}/tsminst1"

    将该行更改为指向您的服务器实例目录。 例如:

    instance_dir="/tsminst1"
  4. 在脚本副本中,找到以下行:
    # pidfile: /var/run/dsmserv_instancename_su.pid

    将实例名称值更改为服务实例所有者的名称。 例如,如果服务器实例所有者为 tsminst1,通过发出以下命令来更新该行:

    # pidfile: /var/run/dsmserv_tsminst1_su.pid
  5. /etc/systemd/system 目录中创建 实例.service 文件。

    例如:

    vi /etc/systemd/system/tsminst1.service

    该文件包含以下内容:

    [Unit]
    Description=IBM Storage Protect Server instance tsminst1
    
    [Service]
    TasksMax=infinity
    Type=oneshot
    RemainAfterExit=true
    ExecStart=/opt/tivoli/tsm/server/bin/tsminst1 start
    ExecStop=/opt/tivoli/tsm/server/bin/tsminst1 stop
    ExecReload=/opt/tivoli/tsm/server/bin/tsminst1 restart
    
    [Install]
    WantedBy=multi-user.target
    
  6. 保存该服务文件并运行以下命令:
    systemctl daemon-reload
  7. 创建从 /etc/systemd/system 目录中的脚本到 /etc/systemd/system/multi-user.target.wants 目录的符号链接。 例如:
    ln -s /etc/systemd/system/tsminst1.service  /etc/systemd/system/multi-user.target.wants/tsminst1.service
  8. 要启用 systemd 初始化服务,请运行以下命令:
    systemctl enable service_name

    例如:

    systemctl enable tsminst1.service

使用 System V 初始化来自动启动服务器

要使用 System V 初始化系统在 Linux 操作系统上自动启动服务器,请配置并运行 dsmserv.rc 脚本。

准备工作

请确保正确设置了内核参数。

请确保以实例所有者用户标识运行服务器实例。

请确保正确设置了访问权和用户限制。

关于此任务

dsmserv.rc 脚本位于服务器安装目录中(例如 /opt/tivoli/tsm/server/bin)。

dsmserv.rc 脚本可用于手动启动服务器,也可用于通过向 /etc/rc.d/init.d 目录添加条目自动启动服务器。 此脚本与 Linux 实用程序 (例如 CHKCONFIGSERVICE) 配合使用。

过程

为要自动启动的每个服务器实例完成下列步骤:

  1. dsmserv.rc 脚本的副本放在 /init.d 目录中,例如 /etc/rc.d/init.d

    确保仅更改该脚本的副本。 请勿更改原始脚本。

  2. 重命名脚本副本,使其与服务器实例所有者的名称匹配,例如 tsminst1

    该脚本是依据服务器实例目录为 home_directory/tsminst1(例如:/home/tsminst1/tsminst1)的假设而创建的。

  3. 如果服务器实例目录不是 home_directory/tsminst1,请在脚本副本中找到以下行:
    instance_dir="${instance_home}/tsminst1"
    更改该行,使其指向服务器实例目录,例如:
    instance_dir="/tsminst1"
  4. 在脚本副本中,找到以下行:
    # pidfile: /var/run/dsmserv_instancename_su.pid
    将实例名称值更改为服务实例所有者的名称。
    例如,如果服务器实例所有者为 tsminst1,请更新下面所显示的行:
    # pidfile: /var/run/dsmserv_tsminst1_su.pid
  5. 配置服务器自动启动的运行级别。 通过使用 CHKCONFIG 实用程序等工具,指定与开启网络的多用户方式相对应的值。 通常,要使用的运行级别为 3 或 5,这取决于操作系统及其配置。 有关多用户方式和运行级别的更多信息,请参阅操作系统文档。
  6. 要启动服务器,请发出以下命令:
    service 服务器实例所有者 start

    例如,如果服务器实例所有者为 tsminst1,那么将发出以下命令:

    service tsminst1 start

  7. 要停止服务器,请发出以下命令:
    service 服务器实例所有者 stop

    例如,如果服务器实例所有者为 tsminst1,那么将发出以下命令:

    service tsminst1 stop

示例

此示例使用以下值:
  • 实例所有者为 tsminst1。
  • 服务器实例目录为 /home/tsminst1/tsminst1
  • dsmserv.rc 脚本副本名为 tsminst1
  • CHKCONFIG 实用程序用于将脚本配置为在运行级别 3、4 和 5 启动。
cp /opt/tivoli/tsm/server/bin/dsmserv.rc /etc/rc.d/init.d/tsminst1
sed -i 's/dsmserv_instancename.pid/dsmserv_tsminst1.pid/' /etc/rc.d/init.d/tsminst1
chkconfig --list tsminst1
service tsminst1 supports chkconfig, but is not referenced in
any runlevel (run 'chkconfig --add tsminst1')
chkconfig --add tsminst1
chkconfig --list tsminst1
tsminst1 0:off 1:off 2:off 3:off 4:off 5:off 6:off
chkconfig --level 345 tsminst1 on
chkconfig --list tsminst1
tsminst1 0:off 1:off 2:off 3:on 4:on 5:on 6:off