视频加载失败

【Linux】DotNet运行命令

630 字
3 分钟
【Linux】DotNet运行命令

设置系统级环境变量#

Terminal window
# /etc/profile.d/{文件名.sh} 新建并打开配置文件
vi /etc/profile.d/dotnet.sh
# 文件末尾加变量定义
# 此处我的dotnet文件在 这个位置 /home/sys_wh/dotnet
export DOTNET_ROOT=/home/sys_wh/dotnet
export PATH=$PATH:/home/sys_wh/dotnet
# 重载配置文件
source /etc/profile.d/dotnet.sh
# 终端使用变量,执行以下命令查看是否有版本输出,最好切换下用户测试是否所有用户都可以读到变量
dotnet info

启动脚本#

#!/bin/bash
#这里可替换为你自己的执行程序,其他代码无需更改
APP_NAME=CATSTI.YZ.dll
#这里修改程序运行的端口号
APP_PORT=8181
#使用说明,用来提示输入参数
usage() {
echo "Usage: sh YZServiceStart.sh [start|stop|restart|status]"
exit 1
}
#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
#如果不存在返回1,存在返回0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
#启动方法
start(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is already running. pid=${pid} ."
else
nohup dotnet $APP_NAME --urls=http://*:$APP_PORT > /dev/null 2>&1 &
echo "${APP_NAME} start success"
fi
}
#停止方法
stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
else
echo "${APP_NAME} is not running"
fi
}
#输出运行状态
status(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is NOT running."
fi
}
#重启
restart(){
stop
start
}
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac

批量启动脚本#

#!/bin/bash
# 应用程序的路径
APP_PATH="/home/sys_wh/yz/30-NewYZ/CATSTI.YZ.dll"
# 启动的端口列表
PORTS=( "5000" "5001" "5002" )
start() {
# 循环启动每个端口的应用程序
for PORT in "${PORTS[@]}"; do
nohup dotnet $APP_PATH --urls http://*:$PORT > "app_$PORT.log" 2>&1 &
echo "端口 $PORT 已启动"
done
echo "应用程序已批量启动。"
}
stop() {
# 循环启动每个端口的应用程序
for PORT in "${PORTS[@]}"; do
# 停止端口为5000的应用程序
kill $(lsof -i :$PORT -t)
echo "端口 $PORT 已停止"
done
echo "............应用程序已批量停止。............"
}
status() {
for PORT in "${PORTS[@]}"; do
# 检查端口是否在使用中
if [ -n "$(netstat -tuln | grep :$PORT)" ] || [ -n "$(ss -tuln | grep :$PORT)" ]; then
echo "端口 $PORT 正在使用中"
else
echo "端口 $PORT 未被使用"
fi
done
}
case "$1" in
start)
start "$2"
sleep 5s
status "$2"
;;
stop)
stop "$2"
;;
status)
status "$2"
;;
restart)
stop "$2"
sleep 3s
start "$2"
sleep 5s
status "$2"
;;
*)
echo "第一个参数请输入:start|stop|restart|status"
exit 1
;;
esac

注册系统服务#

Terminal window
[Unit]
Description=Dotnet Searver
[Service]
LimitMEMLOCK=infinity
LimitNOFILE=65535
WorkingDirectory=/app
Restart=always
Type=forking
ExecStart=/app/startup.sh
ExecStop=/usr/bin/kill -15 $MAINPID
[Install]
WantedBy=multi-user.target

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
【Linux】DotNet运行命令
https://blog.huhaha.vip/posts/26185413/
作者
小王的博客
发布于
2024-07-01
许可协议
CC BY-NC-SA 4.0
相关文章智能推荐
1
【Linux】常用命令
Linux本文档《【Linux】常用命令》详细列出了Linux系统中常用的命令及其用法,涵盖了从基本命令、关机操作、文件和目录管理、文件搜索、文件系统的挂载与卸载、磁盘空间管理、文件权限设置、文件的特殊属性、打包和压缩文件、RPM包管理、YUM软件包升级器、DEB包管理、查看文件内容、文本处理、字符设置和文件格式转换等操作。
2
【Linux】Vim命令合集
Linux本文《【Linux】Vim命令合集》详细总结了Vim编辑器的各种常用命令和技巧。每个命令都配有详细的说明和使用示例,适合初学者和进阶用户学习和参考。文章最后还提供了Vim教程的启动方法和一些参考文档。
3
【Linux】Libgdiplus安装
Linux在CentOS 7上安装libgdiplus的过程,以解决ASP.NET Core MVC项目在处理图片时遇到的The type initializer for ‘Gdip‘ threw an exception错误。首先,通过安装yum-utils和epel-release来获取必要的工具和仓库支持。
4
【Linux】Nacos 问题
Linux本文《【Linux】Nacos 问题》详细记录了在Linux环境下遇到的Nacos服务连接问题及其解决方法。文章还介绍了如何配置Nacos服务的开机自启动,确保服务在系统重启后能够自动运行。这些内容对解决Nacos连接问题和提高系统稳定性非常有帮助。
5
【Linux】RocketMQ 部署
Linux在Linux环境下部署RocketMQ的完整过程。文章详细说明了如何通过Docker部署RocketMQ,包括创建NameServer、Broker和RocketMQ Console的服务,并提供了相应的Docker命令和配置文件示例。
随机文章随机推荐

评论区

Profile Image of the Author
小王的博客
一个上了年纪的猿人.
分类
标签
最新动态
站点统计
文章
209
分类
15
标签
161
总字数
478,322
运行时长
0
最后活动
0 天前
站点信息
构建平台
Vercel
博客版本
Firefly v6.16.7
文章许可
CC BY-NC-SA 4.0
文章目录