导航:首页 > 编程系统 > linux串口后台运行

linux串口后台运行

发布时间:2024-05-06 05:03:31

1. linux 杩滅▼涓绘満鍚庡彴杩愯屼换鍔 鎸傝捣鑴氭湰

鑳屾櫙 锛氬伐浣滈渶瑕侊紝闇瑕佽繙绋嬫帶鍒朵富鏈轰娇鍏舵柇寮Xshell鍚庝篃鑳戒竴鐩磋繍琛屻
鍏抽敭瀛 锛& 锛宯ohup锛岃剼鏈鎸傝捣銆

鍦ㄥ簲鐢║nix/Linux鏃讹紝鎴戜滑涓鑸鎯宠╂煇涓绋嬪簭鍦ㄥ悗鍙拌繍琛岋紝浜庢槸鎴戜滑灏嗗父浼氱敤 & 鍦ㄧ▼搴忕粨灏炬潵璁╃▼搴忚嚜鍔ㄨ繍琛屻

閿鍏Ctrl + C锛屽彂鍑篠IGINT淇″彿锛岀▼搴忎細缁х画杩愯

鏂规硶涓銆佽緭鍏ュ懡浠わ細jobs

鏂规硶浜岋細杈撳叆鍛戒护锛歱s

fg銆乥g銆乯obs銆&銆乶ohup銆乧trl+z銆乧trl+c 鍛戒护

鍔犲湪涓涓鍛戒护鐨勬渶鍚庯紝鍙浠ユ妸杩欎釜鍛戒护鏀惧埌鍚庡彴鎵ц岋紝濡

鍙浠ュ皢涓涓姝e湪鍓嶅彴鎵ц岀殑鍛戒护鏀惧埌鍚庡彴锛屽苟涓斿勪簬鏆傚仠鐘舵併

鏌ョ湅褰撳墠鏈夊氬皯鍦ㄥ悗鍙拌繍琛岀殑鍛戒护
jobs -l閫夐」鍙鏄剧ず鎵鏈変换鍔$殑PID锛宩obs鐨勭姸鎬佸彲浠ユ槸running, stopped, Terminated銆備絾鏄濡傛灉浠诲姟琚缁堟浜嗭紙kill锛夛紝shell 浠庡綋鍓嶇殑shell鐜澧冨凡鐭ョ殑鍒楄〃涓鍒犻櫎浠诲姟鐨勮繘绋嬫爣璇嗐

灏嗗悗鍙颁腑鐨勫懡浠よ皟鑷冲墠鍙扮户缁杩愯屻傚傛灉鍚庡彴涓鏈夊氫釜鍛戒护锛屽彲浠ョ敤fg %jobnumber锛堟槸鍛戒护缂栧彿锛屼笉鏄杩涚▼鍙凤級灏嗛変腑鐨勫懡浠よ皟鍑恒

灏嗕竴涓鍦ㄥ悗鍙版殏鍋滅殑鍛戒护锛屽彉鎴愬湪鍚庡彴缁х画鎵ц屻傚傛灉鍚庡彴涓鏈夊氫釜鍛戒护锛屽彲浠ョ敤bg %jobnumber灏嗛変腑鐨勫懡浠よ皟鍑恒

娉曞瓙1锛氶氳繃jobs鍛戒护鏌ョ湅job鍙凤紙鍋囪句负num锛夛紝鐒跺悗鎵ц宬ill %num
娉曞瓙2锛氶氳繃ps鍛戒护鏌ョ湅job鐨勮繘绋嬪彿锛圥ID锛屽亣璁句负pid锛夛紝鐒跺悗鎵ц宬ill pid
鍓嶅彴杩涚▼鐨勭粓姝锛欳trl+c

濡傛灉璁╃▼搴忓嬬粓鍦ㄥ悗鍙版墽琛岋紝鍗充娇鍏抽棴褰撳墠鐨勭粓绔涔熸墽琛岋紙涔嬪墠鐨&鍋氫笉鍒帮級锛岃繖鏃跺欓渶瑕乶ohup銆傝ュ懡浠ゅ彲浠ュ湪浣犻鍑哄笎鎴/鍏抽棴缁堢涔嬪悗缁х画杩愯岀浉搴旂殑杩涚▼銆
鍏抽棴涓鏂鍚庯紝鍦ㄥ彟涓涓缁堢痡obs宸茬粡鏃犳硶鐪嬪埌鍚庡彴璺戝緱绋嬪簭浜嗭紝姝ゆ椂鍒╃敤ps锛堣繘绋嬫煡鐪嬪懡浠わ級

濡備笂鎵绀猴細
nohup 鍜 & 缁勫悎浜嗗悗鍙拌繍琛岀▼搴忋
鍙浠ヨ緭鍑哄埌 out.log淇濆瓨绋嬪簭杈撳嚭锛屼篃鍙浠ヨ緭鍑哄埌/dev/null 鍗崇┖璁惧囷紝涓嶄繚瀛樿緭鍑恒

涓婇潰涓夌嶆柟寮忔棤璁哄湪nohup.out 鎴杢est.out閮界湅涓嶅埌鏁版嵁缁撴灉锛岃繖鏄鍥犱负python鎵ц屾湁缂撳瓨杈撳嚭
瑙e喅

鏂扮殑鎺ュ彛鎺ュ叆鏌ョ湅绋嬪簭

浣跨敤&鍚庡彴杩愯岀▼搴忥細

缁撴灉浼氳緭鍑哄埌缁堢
浣跨敤Ctrl + C鍙戦丼IGINT淇″彿锛 绋嬪簭鍏嶇柅
鍏抽棴session鍙戦丼IGHUP淇″彿锛 绋嬪簭鍏抽棴

浣跨敤nohup杩愯岀▼搴忥細

缁撴灉榛樿や細杈撳嚭鍒皀ohup.out
浣跨敤Ctrl + C鍙戦丼IGINT淇″彿锛 绋嬪簭鍏抽棴
鍏抽棴session鍙戦丼IGHUP淇″彿锛 绋嬪簭鍏嶇柅
骞虫棩绾夸笂缁忓父浣跨敤nohup鍜&閰嶅悎鏉ュ惎鍔ㄧ▼搴忥細
鍚屾椂鍏嶇柅SIGINT鍜孲IGHUP淇″彿

鍚屾椂锛岃繕鏈変竴涓鏈浣冲疄璺碉細
涓嶈佸皢淇℃伅杈撳嚭鍒扮粓绔鏍囧噯杈撳嚭锛屾爣鍑嗛敊璇杈撳嚭锛岃岃佺敤鏃ュ織缁勪欢灏嗕俊鎭璁板綍鍒版棩蹇楅噷
nohup鍜&绌剁珶鏈夊暐鍖哄埆

2. Linux普通用户运行串口

将USB串口设备插入USB口后,会在/dev/目录下生成/dev/ttyUSB0文件(也可能为/dev/ttyUSB1,/dev/ttyUSB2...),
查看此文件

输出为:

c说明表明设备为字符设备文件(d表示目录文件,-表示普通文件,l表示链接文件,b表示块文件),
其中rw-rw----表示root用户作为文件所有者可以读和写,dialout用户组内的用户可以读和写,其他用户不允许读、写和执行(r表示可读,w表示可写,x表示可执行)
因此,需要将当前用户增加到dialout用户组中

3. linux后台执行命令

搜索nohup

nohup
nohup 命令
用途:LINUX命令用法,不挂断地运行命令。
语法:nohup Command [ Arg ... ] [ & ]
描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。
如果不将 nohup 命令的输出重定向,输出将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。
退出状态:该命令返回下列出口值:
126 可以查找但不能调用 Command 参数指定的命令。
127 nohup 命令发生错误或不能查找由 Command 参数指定的命令。
否则,nohup 命令的退出状态是 Command 参数指定命令的退出状态。
nohup命令及其输出文件
nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( n ohang up)。
该命令的一般形式为:nohup command &
使用nohup命令提交作业
如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为 nohup.out的文件中,除非另外指定了输出文件:
nohup command > myout.file 2>&1 &
在上面的例子中,输出被重定向到myout.file文件中。
使用 jobs 查看任务。
使用 fg %n 关闭。
另外有两个常用的ftp工具ncftpget和ncftpput,可以实现后台的ftp上传和下载,这样我就可以利用这些命令在后台上传和下载文件了。

4. Linux进程后台运行的几种方式

Ctrl+z/bg/nohup/setsid/&
在Linux中,如果要让进程在后台运行,一般情况下,我们在命令后面加上&即可,实际上,这样是将命令放入到一个作业队列中了:

./rsync.sh &# jobs

但是如上方到后台执行的进程,其父进程还是当前终端shell的进程,而一旦父进程退出,则会发送hangup信号给所有子进程,子进程收到hangup以后也会退出。如果我们要在退出shell的时候继续运行进程,则需要使用nohup忽略hangup信号,或者setsid将将父进程设为init进程(进程号为1):对于已经在前台执行的命令,也可以重新放到后台执行,首先按ctrl+z暂停已经运行的进程,然后使用bg命令将停止的作业放到后台运行:bg %1,放回前台运行:%1。
# nohup ./rsync.sh &# setsid ./rsync.sh &或
# (./rsync.sh &) ////在一个subshell中执行# ps -ef|grep rsync

nohup 的用途就是让提交的命令忽略 hangup 信号,标准输出和标准错误缺省会被重定向到 nohup.out 文件中。。一般我们可在结尾加上”&”来将命令同时放入后台运行,也可用” > log.out 2>&1”来更改缺省的重定向文件名。
上面的试验演示了使用nohup/setsid加上&使进程在后台运行,同时不受当前shell退出的影响。那么对于已经在后台运行的进程,该怎么办呢?可以使用disown命令:
# jobs
# disown -h %1# ps -ef|grep rsync

效果与setid相同,但是disown后无法通过jobs命令查看了。
screen
还有一种更加强大的方式是使用screen,首先创建一个断开模式的虚拟终端,然后用-r选项重新连接这个虚拟终端,在其中执行的任何命令,都能达到nohup的效果,这在有多个命令需要在后台连续执行的时候比较方便。

GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换,可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。
# yum install screen -y

常用screen参数:
# screen -S docker-d 新建一个名叫docker-d的session,并马上进入
# screen -dmS docker-d 新建一个名叫docker-d的session,但暂不进入,可用于系统启动脚本里
# screen -ls 列出当前所有session
# screen -r docker-d 恢复到zhouxiao这个session,前提是已经是断开状态(-d可以远程断开会话)
# screen -x docker-d 连接到离线模式的会话(多窗口同步演示)
# screen ./rsync.sh screen创建一个执行脚本的单窗口会话,可以attach进程ID
# screen -wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业

正常情况下,当你退出一个窗口中最后一个程序(通常是bash)后,这个窗口就关闭了。另一个关闭窗口的方法是使用C-a k,这个快捷键杀死当前的窗口,同时也将杀死这个窗口中正在运行的进程。
在每个screen session 下,所有命令都以 ctrl+a(C-a) 开始。
C-a w 显示所有窗口列表
C-a k 这个快捷键杀死当前的窗口,同时也将杀死这个窗口中正在运行的进程。
C-a d detach,暂时离开当前session

上面只是基本也是最常用的用法,更多请参考man screen或linux screen 命令详解。需要了解的是,一个用户创建的screen,其他用户(甚至root)通过screen -ls是看不见的。另外,Ctrl+a在bash下是用来回到行开头,不幸与上面的组合快捷键冲突。

阅读全文

与linux串口后台运行相关的资料

热点内容
dm80082版本固件 浏览:37
苹果手机用什么可以打开psd文件 浏览:627
服务号和小程序的区别 浏览:888
360手机助手qq文件位置 浏览:693
如何学习数码编程 浏览:60
微信消息发布出去 浏览:377
windows文件名一个个消失 浏览:907
易语言设置文件所有者 浏览:197
iphone手机如何显示wifi密码 浏览:880
文山大数据 浏览:496
3dsrxtools怎么升级 浏览:903
乐高的机器人编程是用什么 浏览:542
neato怎么升级固件 浏览:637
苹果在qq上下载的文件在哪里可以找到 浏览:576
win10平板蓝牙鼠标 浏览:791
小精灵软件怎么导入数据 浏览:252
linux卸载sendmail 浏览:62
免费大数据分析 浏览:448
word2007怎么调整页码 浏览:629
做系统镜像文件 浏览:518

友情链接