期待を使用して、ubuntuで画面マルチウィンドウブート操作を実現します

ubuntuの下で、expectを使用して画面マルチウィンドウブート操作を実現します##

1. expectのインストールと使用###

1.1. expect ####のインストールと使用

とは ####

期待は、自動制御とテストのためのツールです。これは主に、telnet ftpsshなどのインタラクティブソフトウェアと自動的に対話します。

インストールする方法####

1.2. ####をインストールするかどうかを確認します

ls /usr/bin |grep expect

Bash

存在しない場合はインストールしてください

1.3. インストール####

apt-get install expect

Bash

ls /usr/bin |grep expect
autoexpect
expect
expect_autoexpect
expect_autopasswd
expect_cryptdir
expect_decryptdir
expect_dislocate
expect_ftp-rfc
expect_kibitz
expect_lpunlock
expect_mkpasswd
expect_multixterm
expect_passmass
expect_rftp
expect_rlogin-cwd
expect_timed-read
expect_timed-run
expect_tknewsbiff
expect_tkpasswd
expect_unbuffer
expect_weather
expect_xkibitz
expect_xpstat

Bash

Wikiはexpectについて説明していますhttps://zh.wikipedia.org/wiki/Expect

2. インストール画面###

apt-get install screen

画面の使い方はここではあまり紹介されていません。グーグル検索してください

3. 画面マルチウィンドウ操作を実現するためにexpectを使用してください###

3.1. start.shを確立し、実行を開始します####

#! /usr/bin/env bash
screen_name1=$"baidu"
screen -dmS $screen_name1
cmd1=$"ping www.baidu.com";
screen -x -S $screen_name1 -p 0-X stuff "$cmd1" #画面を作成する
screen -x -S $screen_name1 -p 0-X stuff $'\n' #キャリッジリターン
# ネストされた期待
# send "\01"アナログ入力制御-a 
# send "d"アナログ入力dctrl-a+dは画面をハングアップすることです
/usr/bin/expect <<EOF
send "\01"
send "d"
expect eof
EOF

screen_name2=$"google"
screen -dmS $screen_name2
cmd2=$"ping www.baidu.com";
screen -x -S $screen_name2 -p 0-X stuff "$cmd2"
screen -x -S $screen_name2 -p 0-X stuff $'\n'/usr/bin/expect <<EOF
send "\01"
send "d"
expect eof
EOF

Bash

テストスクリプト

sh start.sh

Bash

画面ウィンドウを表示

screen -ls

Bash

# テキストを出力すると、活字面が正常に起動します
There is a screen on:168.baidu(06/08/1907:14:04)(Detached)158.google(06/08/1907:14:04)(Detached)1 Socket in/run/screen/S-root.

Bash

3.2 stop.shファイルを作成します####

#! /usr/bin/env bash
screen_name1=$"baidu"
screen -X -S $screen_name1 quit #終了画面

screen_name2=$"google"
screen -X -S $screen_name2 quit

Bash

3.3 crontabはこれら2つのスクリプトを定期的に実行します####

crontab  -e

010***/root/start.sh #毎朝10時
3023***/root/stop.sh #毎晩23.30

Bash

3.4 起動操作####

ブートイネーブルを設定します。ubuntu18バージョンのみ

# 最初にrcを確認します-ローカルは開始されていますか?,起動した場合は、完全に再起動する必要があります,ここのピット,砂浜が30分踏んだ
systemctl status rc-local.service

vim /lib/systemd/system/rc-local.service
# 一番下で参加する
[ Install]
WantedBy=multi-user.target
Alias=rc-local.service

vim /etc/rc.local
# 次のコードを追加します
#! /bin/bash
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By defaultthis script does nothing.
bash /root/start.sh
exit 0

Bash

# 許可を与える
chmod +x /etc/rc.local
# オープンサービス
systemctl enable rc-local
# サービスを開始し、ステータスを確認します
sudo systemctl start rc-local.service
sudo systemctl status rc-local.service

# サーバーを再起動します
reboot

# サーバーが起動しているかどうかを確認します
sudo systemctl status rc-local.service
# テキストを出力すると、活字面が正常に起動します
Active:active(running) since Fri 2019-06-0703:25:59 UTC; 19s ago
screen -ls
# テキストを出力すると、活字面が正常に起動します
There is a screen on:168.baidu(06/08/1907:14:04)(Detached)158.google(06/08/1907:14:04)(Detached)1 Socket in/run/screen/S-root.

Bash

Liao Liaojunは実際の経験を投げ、他の転送を受け入れません、このサイトは独立した許可を得ています!:-)

Recommended Posts

期待を使用して、ubuntuで画面マルチウィンドウブート操作を実現します
mendeleyを使用してubuntuの下に参照を挿入します
Ubuntu14.04でEvernoteを使用する方法の概要
rsyncを使用して、Ubuntuでデータをリモートバックアップします
doxygenを使用して、Ubuntu12.04でAPIドキュメントを生成します
ubuntuでiptablesを使用する
Ubuntuを使用してUディスクを起動し、Windowsの起動パスワードを解読します
ubuntuの下で崇高なtexを使用する
ubuntuでのmediawikiの使用
virtualboxを使用してubuntuをデプロイします
VMwareでUbuntuとWindows間のファイル共有を実現する方法
14.10に適用可能なUbuntu13.10でQQを使用する
ubuntuでijkplayer-androidをコンパイルする方法
Ubuntuターミナルマルチウィンドウ分割画面ターミネータ
Ubuntuでの大胆なインストール手順
ubuntu16.04でTensorflowをインストールする方法
Ubuntu16.04でSambaサーバーを使用する方法
python3を使用してubuntuに3番目をインストールします
Ubuntuでソフトウェアをインストールする3つの方法
UbuntuでMySQLパスワードを変更する方法
Linux(ubuntu)でファイル権限の追加/削除を実現
Windowsはubuntuを使用してLinuxサービスを開始します