最近公司使用TFS-CI的方式定期部署测试环境, 但是发现TFS-CI 运行完之后会清理agent所在的测试环境. 运行的进程都会被killed
1. 第一种方法: 本来第一反应 是使用systemd的方式 将 正在测试的产品作为linux的服务 驻留后台运行.
方法也很简单 就是简单增加了两个服务service即可.
java版本的
[root@centos76 deploy]# cat /etc/systemd/system/jstack.service [Unit] Description=jstack [Service] Type=simple ExecStart=/path/to/file [Install] WantedBy=multi-user.target
dotnet版的
[root@centos76 deploy]# cat /etc/systemd/system/nstack.service [Unit] Description=nstack [Service] ExecStart=/usr/bin/dotnet /path/nstack/runtime/libs/yourapp.dll restart=always [Install] WantedBy=multi-user.target
然后使用
systemctl enable jstack && systemctl restart jstack
systemctl enable nstack && systemctl restart nstack
但是发现 java版本的有问题 经常获取不到自己应用程序 path目录下面的资源或者是程序文件
程序有异常 这种方案没有实行的意义了.
2. 中午午休时睡不着 想到 使用远程执行命令的方法, TFS的agent 应该不会继续追杀了吧.. 本来想多用几台机器来测试,但是想了想意义不大 改用其他方式来处理
将启动服务的脚本进行修改
本来是
/deploy/startup
将 startup脚本修改为 startupback
然后 将原来的 startup 脚本进行修改
ssh root@127.0.0.1 "/deploy/startupback"
来远程执行
注意 需要先使用 ssh-copy-id root@127.0.0.1 的方式来处理.
进行测试, 验证无问题.. 貌似很简单的将TFS的agent欺骗了过去.
记录一下 以后使用.