人弹框网页源码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE>嘻嘻 对不起咯</TITLE><META http-equiv=Content-Type content="text/html; charset=gb2312"><META content="MSHTML 6.00.2800.1106" name=GENERATOR><META content=FrontPage.Editor.Document name=ProgId><SCRIPT language=JavaScript>var msg = "呵呵";var speed = 300; var msgud = " " + msg; function titleScroll() { if (msgud.length <msg.length) msgud += " - " + msg; msgud = msgud.substring(1, msgud.length); document.title = msgud.substring(0, msg.length);window.setTimeout("titleScroll()", speed); } </SCRIPT></HEAD><BODY><script language=JavaScript>alert("咦。怎么回事?")</script><script language=JavaScript>alert("嘿 老兄 你进来容易 出去难")</script><script language=JavaScript>alert("放我出去")</script><script language=JavaScript>alert("没法啦!你都上了,只有陪我了")</script><script language=JavaScript>alert("哈哈!呵呵!嘻嘻!")</script><script language=JavaScript>alert("我都不想的,都是想开心下")</script><script language=JavaScript>alert("别难过了~~~")</script><script language=JavaScript>alert("就和我玩玩啦!")</script><script language=JavaScript>alert("但是玩笑可能开过头了")</script><script language=JavaScript>alert("竟然要您来陪我")</script><script language=JavaScript>alert("哎,真是的!")</script><script language=JavaScript>alert("答应我你会复制地址发给你QQ上的10个好友就会自动结束")</script><script language=JavaScript>alert("可是你怎么能回去呢?")</script><script language=JavaScript>alert("我也没办法")</script><script language=JavaScript>alert("要不。。。")</script><script language=JavaScript>alert("把机子关了吧!")</script><script language=JavaScript>alert("什么?你不愿意关?")</script><script language=JavaScript>alert("那怎么办呢?")</script><script language=JavaScript>alert("让我再想想")</script><script language=JavaScript>alert("对不起,实在没有办法了!")</script><script language=JavaScript>alert("都是我不好,让你受那么大委屈!")</script><script language=JavaScript>alert("但是现在你该怎么办呢?")</script><script language=JavaScript>alert("哎呀!求你了!!别哭好不好?!")</script><script language=JavaScript>alert("都是我的错,行了吗?")</script><script language=JavaScript>alert("什么?不行?孬人,快放了我")</script><script language=JavaScript>alert("别这样嘛!")</script><script language=JavaScript>alert("我给你讲个故事行吗?")</script><script language=JavaScript>alert("从前有个山")</script><script language=JavaScript>alert("山上有个庙")</script><script language=JavaScript>alert("庙里有个老和尚有个小和尚")</script><script language=JavaScript>alert("老和尚正在给小和尚讲故事")</script><script language=JavaScript>alert("从前有个山")</script><script language=JavaScript>alert("山上有个庙。。。。")</script><script language=JavaScript>alert("别骂我呀?")</script><script language=JavaScript>alert("你不愿听这个我给你换一个")</script><script language=JavaScript>alert("从前有个山")</script><script language=JavaScript>alert("山上有个庵")</script><script language=JavaScript>alert("庵里有个老尼姑有个小尼姑")</script><script language=JavaScript>alert("老尼姑。。。哎呦别打了,我换一个!")</script><script language=JavaScript>alert("讲个好听的")</script><script language=JavaScript>alert("仔细听啊")</script><script language=JavaScript>alert("从前有个山")</script><script language=JavaScript>alert("呵呵,先别打,和那个不一样!")</script><script language=JavaScript>alert("山上有个庙")</script><script language=JavaScript>alert("哎呦,听我讲完!")</script><script language=JavaScript>alert("庙里有个缸")</script><script language=JavaScript>alert("不一样了吧")</script><script language=JavaScript>alert("缸里有个瓢")</script><script language=JavaScript>alert("瓢里有个碗")</script><script language=JavaScript>alert("碗里有个勺")</script><script language=JavaScript>alert("勺里有块肉")</script><script language=JavaScript>alert("我吃了你馋了")</script><script language=JavaScript>alert("我的故事讲完了!")</script><script language=JavaScript>alert("好不好?")</script><script language=JavaScript>alert("什么?还想听?你正孬人!")</script><script language=JavaScript>alert("那好,我再来一个!")</script><script language=JavaScript>alert("从前")</script><script language=JavaScript>alert("有一个小孩牵个羊")</script><script language=JavaScript>alert("我的故事就这么长")</script><script language=JavaScript>alert("你不愿意听是吗?")</script><script language=JavaScript>alert("那怎么办?")</script><script language=JavaScript>alert("你已经出不去了")</script><script language=JavaScript>alert("还是关掉电脑来的干脆")</script><script language=JavaScript>alert("试试吧")</script><script language=JavaScript>alert("还是不愿关?")</script><script language=JavaScript>alert("那我再给你讲故事!")</script><script language=JavaScript>alert("哎哎,别哭嘛!")</script><script language=JavaScript>alert("哭的我挺伤心的")</script><script language=JavaScript>alert("你真的出不去了")</script><script language=JavaScript>alert("你还不泄气?")</script><script language=JavaScript>alert("我佩服你这种精神!")</script><script language=JavaScript>alert("你坚持这么久一定很急了")</script><script language=JavaScript>alert("你还真能坚持!")</script><script language=JavaScript>alert("你一定知道“坚持就是胜利”")</script><script language=JavaScript>alert("对不对?")</script><script language=JavaScript>alert("如果你有这种精神的话---")</script><script language=JavaScript>alert("你一定会成功的!")</script><script language=JavaScript>alert("相信我")</script><script language=JavaScript>alert("你快看到希望了")</script><script language=JavaScript>alert("我不骗你")</script><script language=JavaScript>alert("真的!")</script><script language=JavaScript>alert("你马上就会找到出口的")</script><script language=JavaScript>alert("多亏你坚持了下来")</script><script language=JavaScript>alert("要不,关了机子多不好!")</script><script language=JavaScript>alert("是不是?")</script><script language=JavaScript>alert("对不对?")</script><script language=JavaScript>alert("喂!给你说点正事!")</script><script language=JavaScript>alert("一个人受骗是不是很难受?")</script><script language=JavaScript>alert("想不想让别人替你分担一下?")</script><script language=JavaScript>alert("我的意思是----")</script><script language=JavaScript>alert("把你的朋友叫过来!")</script><script language=JavaScript>alert("让他也受骗")</script><script language=JavaScript>alert("你就在一旁哈哈大笑~~~")</script><script language=JavaScript>alert("好不好?")</script><script language=JavaScript>alert("什么?出卖朋友的事你不干?")</script><script language=JavaScript>alert("你真是好人!")</script><script language=JavaScript>alert("我太感动了!")</script><script language=JavaScript>alert("呜呜~~~~~~")</script><script language=JavaScript>alert("也好,我从不难为好人!")</script><script language=JavaScript>alert("我决定----")</script><script language=JavaScript>alert("让好人多在我身边一会!")</script><script language=JavaScript>alert("你愿不愿意?")</script><script language=JavaScript>alert("怎么还不愿意?")</script><script language=JavaScript>alert("那好,我马上让你出去!")</script><script language=JavaScript>alert("别着急!")</script><script language=JavaScript>alert("你只需再点100000下就可以了!")</script><script language=JavaScript>alert("开个玩笑")</script><script language=JavaScript>alert("不要生气")</script><script language=JavaScript>alert("人生就像一场戏")</script><script language=JavaScript>alert("因为有缘才相聚")</script><script language=JavaScript>alert("相扶到老不容易")</script><script language=JavaScript>alert("是否更该去珍惜")</script><script language=JavaScript>alert("他人生气我不气")</script><script language=JavaScript>alert("气出病来无人替")</script><script language=JavaScript>alert("我说的对不对?")</script><script language=JavaScript>alert("好了")</script><script language=JavaScript>alert("玩笑也开过了")</script><script language=JavaScript>alert("该说的也说了")</script><script language=JavaScript>alert("该放你出去了!")</script><script language=JavaScript>alert("高兴了吧")</script><script language=JavaScript>alert("还有,您可以介绍个MM给我吗")</script><script language=JavaScript>alert("什么,还要我介绍一个给你这个孬人")</script><script language=JavaScript>alert("呵呵,不用嬲啦!")</script><script language=JavaScript>alert("不嬲就假了,我想现在就撕开你两边添啦!")</script><script language=JavaScript>alert("哦,你撕开我两边,那你怎样出呢")</script><script language=JavaScript>alert("你不是真的关机是吗")</script><script language=JavaScript>alert("如果是的,我都没办法了,你关啦")</script><script language=JavaScript>alert("陪多我几小时先啦!")</script><script language=JavaScript>alert("我都没有人陪我")</script><script language=JavaScript>alert("或者你介绍一个MM给我,就不用你陪啦!好吗")</script><script language=JavaScript>alert("好,好难啦!")</script><script language=JavaScript>alert("哦,那你就一直陪我啦!")</script><script language=JavaScript>alert("不要,不要,不要,我返出!")</script><script language=JavaScript>alert("哭~~~~~~~~~哭~~~~~~哭~~~~")</script><script language=JavaScript>alert("呵呵,我怕了您 ,你不要哭了,我放你了!")</script><script language=JavaScript>alert("叮咚!开门啦!")</script><script language=JavaScript>alert("祝贺你!你终于出来了!恭喜恭喜!")</script><script language=JavaScript>alert("看到这句话高兴了吧?")</script><script language=JavaScript>alert("做任何事可不要高兴太早呀!知道了吗?")</script><script language=JavaScript>alert("听说过乐极生悲吗?")</script><script language=JavaScript>alert("算了,算了,还是放你出来吧,做个深呼吸吧,放松一下!")</script><script language=JavaScript>alert("这次不用担心了,放你出来了,通过这个事,应该明白一个道理呀!")</script><script language=JavaScript>alert("那就是:坚持就是胜利,勤奋就有机遇!")</script></script><script language=JavaScript>alert("祝贺你!你终于出来了!恭喜恭喜!")</script><script language=JavaScript>alert("祝贺你!你终于出来了!恭喜恭喜!")</script><script language=JavaScript>alert("祝贺你!你终于出来了!恭喜恭喜!")</script><script language=JavaScript>alert("祝贺你!你终于出来了!恭喜恭喜!")</script><script language=JavaScript>alert("祝贺你!你终于出来了!恭喜恭喜!")</script><script language=JavaScript>alert("祝贺你!你终于出来了!恭喜恭喜!")</script><script language=JavaScript>alert("祝贺你!你终于出来了!恭喜恭喜!")</BODY></HTML>
秋日生活打卡季#
原文链接:统信UOS1060设置自动关机01
hello,大家好啊,今天给大家介绍一篇如何在统信UOS 1060上实现自动关机的文章,本篇文章采用两种方式,第一种使用的是crontab定时任务的方式,第二种是使用at命令的方式,两种方式供您选择。
方法一:使用crontab定时任务
1、编辑crontab文件,设置每天14:09关机
uos@uos-PC:~/Desktop$ sudo -i
请输入密码:
验证成功
root@uos-PC:~# crontab -e
no crontab for root - using an empty one
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.basic
3. /usr/bin/vim.tiny
Choose 1-3 [1]: 2
crontab: installing new crontab
root@uos-PC:~#
root@uos-PC:~# crontab -l
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
09 14 * * * /sbin/poweroff
root@uos-PC:~#
2、等到14:09设备关机
方法二:使用at命令来设置一次性的关机任务
1、安装at命令
uos@uos-PC:~/Desktop$ sudo apt install at -y
请输入密码:
验证成功
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
将会同时安装下列软件:
exim4-base exim4-config exim4-daemon-light guile-2.2-libs libfl2 libgsasl7 libkyotocabinet16v5
libmailutils5 libntlm0 mailutils mailutils-common
建议安装:
exim4-doc-html | exim4-doc-info eximon4 spf-tools-perl swaks mailutils-mh mailutils-doc
下列【新】软件包将被安装:
at exim4-base exim4-config exim4-daemon-light guile-2.2-libs libfl2 libgsasl7 libkyotocabinet16v5
libmailutils5 libntlm0 mailutils mailutils-common
升级了 0 个软件包,新安装了 12 个软件包,要卸载 0 个软件包,有 116 个软件包未被升级。
需要下载 9,660 kB 的归档。
解压缩后会消耗 56.2 MB 的额外空间。
获取:1 https://professional-packages.chinauos.com/desktop-professional eagle/main arm64 libfl2 arm64 2.6.4-6.2 [103 kB]
获取:2 https://professional-packages.chinauos.com/desktop-professional eagle/main arm64 at arm64 3.1.23-1 [48.0 kB]
获取:3 https://professional-packages.chinauos.com/desktop-professional eagle/main arm64 exim4-config all 4.92.3-8+deb10u7 [325 kB]
获取:4 https://professional-packages.chinauos.com/desktop-professional eagle/main arm64 exim4-base arm64 4.92.3-8+deb10u7 [1,136 kB]
获取:5 https://professional-packages.chinauos.com/desktop-professional eagle/main arm64 exim4-daemon-light arm64 4.92.3-8+deb10u7 [533 kB]
获取:6 https://professional-packages.chinauos.com/desktop-professional eagle/main arm64 guile-2.2-libs arm64 2.2.4+1-2+deb10u1 [4,941 kB]
获取:7 https://professional-packages.chinauos.com/desktop-professional eagle/main arm64 libntlm0 arm64 1.5-1+deb10u1+rebuild [23.6 kB]
获取:8 https://professional-packages.chinauos.com/desktop-professional eagle/main arm64 libgsasl7 arm64 1.8.0-8+b2 [198 kB]
获取:9 https://professional-packages.chinauos.com/desktop-professional eagle/main arm64 libkyotocabinet16v5 arm64 1.2.76-4.2+b1 [267 kB]
获取:10 https://professional-packages.chinauos.com/desktop-professional eagle/main arm64 mailutils-common all 1:3.5-4+rebuild [689 kB]
获取:11 https://professional-packages.chinauos.com/desktop-professional eagle/main arm64 libmailutils5 arm64 1:3.5-4+rebuild [829 kB]
获取:12 https://professional-packages.chinauos.com/desktop-professional eagle/main arm64 mailutils arm64 1:3.5-4+rebuild [567 kB]
已下载 9,660 kB,耗时 9秒 (1,022 kB/s)
正在预设定软件包 ...
正在选中未选择的软件包 libfl2:arm64。
(正在读取数据库 ... 系统当前共安装有 207780 个文件和目录。)
准备解压 .../00-libfl2_2.6.4-6.2_arm64.deb ...
正在解压 libfl2:arm64 (2.6.4-6.2) ...
/var/cache/apt/archives/libfl2_2.6.4-6.2_arm64.deb
正在选中未选择的软件包 at。
准备解压 .../01-at_3.1.23-1_arm64.deb ...
正在解压 at (3.1.23-1) ...
/var/cache/apt/archives/at_3.1.23-1_arm64.deb
正在选中未选择的软件包 exim4-config。
准备解压 .../02-exim4-config_4.92.3-8+deb10u7_all.deb ...
正在解压 exim4-config (4.92.3-8+deb10u7) ...
/var/cache/apt/archives/exim4-config_4.92.3-8+deb10u7_all.deb
正在选中未选择的软件包 exim4-base。
准备解压 .../03-exim4-base_4.92.3-8+deb10u7_arm64.deb ...
正在解压 exim4-base (4.92.3-8+deb10u7) ...
/var/cache/apt/archives/exim4-base_4.92.3-8+deb10u7_arm64.deb
正在选中未选择的软件包 exim4-daemon-light。
准备解压 .../04-exim4-daemon-light_4.92.3-8+deb10u7_arm64.deb ...
正在解压 exim4-daemon-light (4.92.3-8+deb10u7) ...
/var/cache/apt/archives/exim4-daemon-light_4.92.3-8+deb10u7_arm64.deb
正在选中未选择的软件包 guile-2.2-libs:arm64。
准备解压 .../05-guile-2.2-libs_2.2.4+1-2+deb10u1_arm64.deb ...
正在解压 guile-2.2-libs:arm64 (2.2.4+1-2+deb10u1) ...
/var/cache/apt/archives/guile-2.2-libs_2.2.4+1-2+deb10u1_arm64.deb
正在选中未选择的软件包 libntlm0:arm64。
准备解压 .../06-libntlm0_1.5-1+deb10u1+rebuild_arm64.deb ...
正在解压 libntlm0:arm64 (1.5-1+deb10u1+rebuild) ...
/var/cache/apt/archives/libntlm0_1.5-1+deb10u1+rebuild_arm64.deb
正在选中未选择的软件包 libgsasl7。
准备解压 .../07-libgsasl7_1.8.0-8+b2_arm64.deb ...
正在解压 libgsasl7 (1.8.0-8+b2) ...
/var/cache/apt/archives/libgsasl7_1.8.0-8+b2_arm64.deb
正在选中未选择的软件包 libkyotocabinet16v5:arm64。
准备解压 .../08-libkyotocabinet16v5_1.2.76-4.2+b1_arm64.deb ...
正在解压 libkyotocabinet16v5:arm64 (1.2.76-4.2+b1) ...
/var/cache/apt/archives/libkyotocabinet16v5_1.2.76-4.2+b1_arm64.deb
正在选中未选择的软件包 mailutils-common。
准备解压 .../09-mailutils-common_1%3a3.5-4+rebuild_all.deb ...
正在解压 mailutils-common (1:3.5-4+rebuild) ...
/var/cache/apt/archives/mailutils-common_1%3a3.5-4+rebuild_all.deb
正在选中未选择的软件包 libmailutils5:arm64。
准备解压 .../10-libmailutils5_1%3a3.5-4+rebuild_arm64.deb ...
正在解压 libmailutils5:arm64 (1:3.5-4+rebuild) ...
/var/cache/apt/archives/libmailutils5_1%3a3.5-4+rebuild_arm64.deb
正在选中未选择的软件包 mailutils。
准备解压 .../11-mailutils_1%3a3.5-4+rebuild_arm64.deb ...
正在解压 mailutils (1:3.5-4+rebuild) ...
/var/cache/apt/archives/mailutils_1%3a3.5-4+rebuild_arm64.deb
正在设置 libkyotocabinet16v5:arm64 (1.2.76-4.2+b1) ...
正在设置 libntlm0:arm64 (1.5-1+deb10u1+rebuild) ...
正在设置 mailutils-common (1:3.5-4+rebuild) ...
正在设置 libfl2:arm64 (2.6.4-6.2) ...
正在设置 exim4-config (4.92.3-8+deb10u7) ...
Adding system-user for exim (v4)
正在设置 guile-2.2-libs:arm64 (2.2.4+1-2+deb10u1) ...
正在设置 exim4-base (4.92.3-8+deb10u7) ...
exim: DB upgrade, deleting hints-db
正在设置 at (3.1.23-1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/atd.service → /lib/systemd/system/atd.service.
正在设置 libgsasl7 (1.8.0-8+b2) ...
正在设置 exim4-daemon-light (4.92.3-8+deb10u7) ...
Initializing GnuTLS DH parameter file
正在设置 libmailutils5:arm64 (1:3.5-4+rebuild) ...
正在设置 mailutils (1:3.5-4+rebuild) ...
update-alternatives: 使用 /usr/bin/frm.mailutils 来在自动模式中提供 /usr/bin/frm (frm)
update-alternatives: 使用 /usr/bin/from.mailutils 来在自动模式中提供 /usr/bin/from (from)
update-alternatives: 使用 /usr/bin/messages.mailutils 来在自动模式中提供 /usr/bin/messages (messages)
update-alternatives: 使用 /usr/bin/movemail.mailutils 来在自动模式中提供 /usr/bin/movemail (movemail)
update-alternatives: 使用 /usr/bin/readmsg.mailutils 来在自动模式中提供 /usr/bin/readmsg (readmsg)
update-alternatives: 使用 /usr/bin/dotlock.mailutils 来在自动模式中提供 /usr/bin/dotlock (dotlock)
update-alternatives: 使用 /usr/bin/mail.mailutils 来在自动模式中提供 /usr/bin/mailx (mailx)
正在处理用于 systemd (241.52-deepin1) 的触发器 ...
正在处理用于 man-db (2.8.5-2) 的触发器 ...
正在处理用于 libc-bin (2.28.23-deepin1) 的触发器 ...
uos@uos-PC:~/Desktop$
2、输入at命令,在指定时间关机
uos@uos-PC:~/Desktop$ sudo -i
请输入密码:
验证成功
root@uos-PC:~#
root@uos-PC:~# echo "poweroff" | at 14:25
warning: commands will be executed using /bin/sh
job 3 at Thu Sep 28 14:25:00 2023
root@uos-PC:~#
3、系统已经关机
工作中,我们通常遇到的问题是,如何控制systemd服务的启动顺序,同志们第一反应就会是使用Before=或者After=去进行控制。 问题来了,如果服务启动时没有顺序要求,但是关闭时有顺序要求, 该如何操作?
通过查找如下相关文档, 我查到了这样一段话:
https://www.freedesktop.org/software/systemd/man/systemd.unit.html
When two units with an ordering dependency between them are shut down, the inverse of the start-up order is applied. I.e. if a unit is configured with After= on another unit, the former is stopped before the latter if both are shut down.
上面这段话的意思是,如果使用After=或者Before=规定了进程的启动顺序, 那么关闭时的顺序与启动时的顺序将是相反的。
比如有A、B、C三个服务, 启动时的顺序时A->B->C, 那么服务的关闭顺序将是C->B->A。 事实是这样的吗? 下面通过一个小实验进行验证。
这里我们准备三个服务,服务在启动时候会向文件中写入相应的启动和关闭日志,通过日志我们来判断服务的启动和关闭顺序。
首先是test1.sh, 该文件接受start/stop两个命令行参数, 启动时写入日志start1, 关闭时写入日志stop1。
#!/bin/bash
case "$1" in
start)
echo "start1" >> /home/test/test.log
;;
stop)
echo "stop1" >> /home/test/test.log
;;
*)
esac
下面是test1服务的systemd的service文件test1.service,这里我们只需要脚本执行一次,因此使用的Type是oneshot类型,并且指定RemainAfterExit=yes,意思是该脚本只会执行一次,并且退出后, 不会意味着服务是inacive状态, 将会显示服务是active(exited)状态。
[Unit]
Description=mytest:while date service
After=network.target sshd.service
[Service]
Type=oneshot
ExecStart= /home/test/test1.sh start
ExecStop= /home/test/test1.sh stop
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
test2.sh与test1.sh类似,只是打印的日志内容不同。
#!/bin/bash
case "$1" in
start)
echo "start2" >> /home/test/test.log
;;
stop)
echo "stop2" >> /home/test/test.log
;;
*)
esac
test2.service同test1.service, 不同的是我在After中增加了test1.service, 这就意味着test2晚于test1启动。
[Unit]
Description=mytest:while date service
After=network.target sshd.service test1.service
[Service]
Type=oneshot
ExecStart= /home/test/test2.sh start
ExecStop= /home/test/test2.sh stop
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
test3.sh同test1.sh
#!/bin/bash
case "$1" in
start)
echo "start3" >> /home/test/test.log
;;
stop)
echo "stop3" >> /home/test/test.log
;;
*)
esac
test3.service同test1.service,不同的是我在After中增加了test2.service, 这就意味着test3晚于test2启动。
[Unit]
Description=mytest:while date service
After=network.target sshd.service test2.service
[Service]
Type=oneshot
ExecStart= /home/test/test3.sh start
ExecStop= /home/test/test3.sh stop
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
通过下面的命令将三个服务分别加入到systemd的目录中,并且启动它们并设为开机启动。
cp test1.service /usr/lib/systemd/system/
cp test2.service /usr/lib/systemd/system/
cp test3.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl enable test1
systemctl enable test2
systemctl enable test3
systemctl start test1
systemctl start test2
systemctl start test3
此时,test.log文件已经打印出了刚刚手动执行启动命令产生的日志
[root@localhost test]# cat test.log
start1
start2
start3
通过上述的步骤,我们构建出了三个服务,这三个服务的启动顺序是test1->test2->test3, 那么根据我们的推测, 关闭顺序应该是test3->test2->test1,是否如此呢?
下面就是到了最终验证的时刻!
reboot
等待一小会后,我们打印出test.log
[root@localhost test]# cat test.log
start1
start2
start3
stop3
stop2
stop1
start1
start2
start3
可以看到停止时依次打印出了stop3,stop2,stop1。这与我们的猜想以及文档中的说明是一致的。
systemd通过After和Before可以指定服务的启动顺序, 在系统关闭时,服务的关闭顺序和启动顺序是相反的, 先启动的后关闭,后启动的先关闭。
*请认真填写需求信息,我们会在24小时内与您取得联系。