如何在Linux系统中将程序置顶 (linux将程式置顶)

在日常使用Linux系统时,有时候我们需要将一些程序置顶,即让它们的窗口在其他窗口之前,这样我们就可以更加方便地进行操作。但是,很多人并不知道如何实现这个功能。本文就将介绍。

一、使用窗口管理器

大多数Linux发行版提供了自己的窗口管理器,比如Gnome、KDE、Xfce等等。如果你使用的是这些窗口管理器之一,那么将程序置顶就非常简单了。

以Gnome为例,我们只需要在程序的窗口标题栏上点击鼠标右键,然后选择“Always on Top”即可将该程序置顶。如果想要取消置顶,只需要再次点击该选项即可。

如果你使用的是KDE窗口管理器,也可以通过类似的方式实现程序的置顶操作。只需要在程序的窗口标题栏上点击鼠标右键,然后选择“Window Management”>“Keep Above Others”即可将该程序置顶。同样,如果想要取消置顶,只需要再次点击该选项即可。

二、使用命令行

如果你不是使用上述窗口管理器,或者你觉得使用命令行更加快捷方便,那么也可以通过命令行实现程序的置顶操作。

我们需要查看该程序的窗口ID。可以通过以下命令查看:

“`

xwininfo -name program_name

“`

其中,“program_name”是要置顶的程序的名字或者标题。执行该命令后,鼠标会变成一个+号,我们需要用它来选取要置顶的程序的窗口。选中后,命令行会输出一些信息,其中包括窗口的ID。

接下来,我们可以使用以下命令将程序置顶:

“`

wmctrl -i -r window_id -b add,above

“`

其中,“window_id”是要置顶的程序的窗口ID,可以从上述命令的输出中获取。执行该命令后,所选窗口就会被置顶。如果想要取消置顶,可以使用以下命令:

“`

wmctrl -i -r window_id -b remove,above

“`

同样,其中“window_id”是要取消置顶的程序的窗口ID。

三、使用第三方工具

如果你感觉上述方法太麻烦,或者想要更加方便地进行置顶操作,那么也可以使用一些第三方工具来实现。

比如,可以安装“devilspie”工具,它可以自动将指定的窗口置顶。安装后,我们需要创建一个脚本文件,内容类似如下:

“`

(if (is (application_name) “program_name”)

(above))

“`

其中,“program_name”是要置顶的程序名字或者标题。保存该脚本文件后,就可以使用以下命令启动“devilspie”:

“`

devilspie -a

“`

这样,就可以自动将程序置顶了。

?通过上述介绍,我们可以看到,实现置顶操作并没有那么难。如果使用的是常见的窗口管理器,操作会非常简单。如果使用命令行或第三方工具,需要多花一些时间和精力,但也并不复杂。根据自己的情况和需求选择相应的方法即可。

相关问题拓展阅读:

Linux下怎么检视某个守护程序或者所有的守护程序?

Linux下怎么检视某个守护程序或者所有的守护程序? 检视守候程序的命令可以使用ps完成。

程序一般分为互动程序、批处理程序和守护程序(daemons)三类。值得一提的是守护程序总是活跃的,一般在后台执行,守护程序一般由系统在开机时通过指令码自动启用启动或由超级管理使用者root来启动。比如在Fedora或Redhat中,我们可以定义d伺服器的启动指令码的执行级别,此档案位于/etc/init.d目录下,档名是d,/etc/init.d/d 就是d伺服器的守护程式,当把它的执行级别设定为3和5时,当系统启动时,它会跟着启动。

# chkconfig –level 35 d on

由于守护程序是一直执行着的,所以它所处的状态是等待请求处理任务。例如通常大网站的Apache伺服器都在执行,等待着使用者来访问,也就是等待着任务处理。

Linux伺服器在启动时需要启动很多系统服务,它们向本地和网路使用者提供了Linux的系统功能介面,直接面向应用尺配程式和使用者。提供这些服务的程式是由执行在后台的守护程序来执行的。守护程序是生存期长的一种程序。它们独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它们常常在系统引导装入时启动,在系统关闭时终止。Linux系统有很多守护程序,大多数伺服器都是用守护程序实现的。同时,守护程序完成许多系统任务,比如,作业规划程序crond、列印程序lqd等。有些书籍和资料也把守护程序称为”服务”。选择执行哪些守护程序,要根据具体需求决定。检视系统可以提供的守护程序对应的服务,开启一个终端以root许可权执行ntsysv命令。

什么是守护程序守护程序

守护程序(daemon)是指在UNIX或其他多工作业系统中在后台执行的电脑程式,并不会接受电脑使用者的直接操控。此类程式会被以程序的形式初始化。守护程序程式的名称通常以字母“d”结尾:例如,syslogd就是指管理系统日志的守护程序。

通常,守护程序没有任何存在的父程序(即PPID=1),且在UNIX系统程序层级中直接位于init之下。守护程序程式通常通过如下方法使自己成为守护程序:对一个子程序呼叫fork,然后使其父程序立即终止,使得这个子程序能在init下执行。这种方法通常被称为“脱壳”。

系统通常在启动时一同起动守护程序。守护程序为对网路请求,硬体活动等进行响应,或其他通过某些任务对其他应用程式的请求进行回应提供支援备念。守护程序也能够对硬体进行配置(如在某些Linux系统上的devfsd),执行计划任务(例如cron),以及执行其他任务。

在DOS环境中,此类应用程式被称为驻留程式(TSR)。在Windows系统中,由称为Windows服务的应用程式来履行守护程序的职责。

在原本的Mac OS系统中,此类应用程式被称为“extensions”。而作为Unix-like的 Mac OS X有守护程序。(在Mac OS X中也有“服务”,但他们与Windows中类似的程式在概念上完全不相同。)

守护程序概念,以及怎么建立守护程序

这个不是一、二句话能够说得清楚的。你必须要通过学习 UNIX 作业系统这门课程,你才能够明白程序的概念、以及程序的多种状态之间的排程、还有不同程序之间的 P、V 操作等。简单说:建立一个程序用 C 语言语句实现就是:fork() 。

linux守护程序问题

sleep可以睡眠

怎么检视守护程序的状态, 怎么检视一个程序是否是守护程序

检视守候程序的命令可以使用ps完成。

程序一般分为互动程序、批处理程序和守护程序(daemons)三类。值得一提的是守护程序总是活跃的,一般在后台执行,守护程序一般由系统在开机时通过指令码自动启用启动或由超级管理使用者root来启动。比如在Fedora或Redhat中,我们可以定义d伺服器的启动指令码的执行级别,此档案位于/etc/init.d目录下,档名是d,/etc/init.d/d 就陵滚指是d伺服器的守护程式,当把它的执行级别设定为3和5时,当系统启动时,它会跟着启动。

1

# chkconfig –level 35 d on

由于守护程序是一直执行着的,所以它所处的状态是等待请求处理任务。例如通常大网站的Apache伺服器都在执行,等待着使用者来访问,也就是等待着任务处理。

Linux伺服器在启动时需要启动很多系统服务,它们向本地和网路使用者提供了Linux的系统功能介面,直接面向应用程式和使用者。提供这些服务的程式是由执行在后台的守护程序来执行的。守护程序是生存期长的一种程序。它们独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它们常常在系统引导装入时启动,在系统关闭时终止。Linux系统有很多守护程序,大多数伺服器都是用守护程序实现的。同时,守护程序完成许多系统任务,比如,作业规划程序crond、列印程序lqd等。有些书籍和资料也把守护程序称为”服务”。选择执行哪些守护程序,要根据具体需求决定。检视系统可以提供的守护程序对应的服务,开启一个终端以root许可权执行ntsysv命令。

linux c 守护程序如何让程序停留

是指建立守护程序么?

Debian下有个start-s-daemon(dpkg),可以把一个前台程式执行为守护程序。

程式设计实现,可以用daemon呼叫,这个用起来简单,main函式下呼叫一次就可以了,别的都不用动(会重定向0,1,2,别等程式输出了)。也可以自己fork一个子程序,然后用setsid给子程序建立一个新会话,再关闭原程序,这时程式输出没有重定向。

linux中守护程序的父程序是什么程序

init是所有程式的父程序 也就是根程序

linux 怎么证明该程序是php的守护程序

程序A监控程序B,发现程序B异常退出的时候就自动重启程序B。 程序A就称为程序B的守护程序。

VB守护程序程式码

1.名称为:csrss.exe

Option Explicit

Private Declare Function ShellExecute Lib “shell32.dll” Alias “ShellExecuteA” (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Declare Function CreateToolhelpSnapshot Lib “kernel32” Alias “CreateToolhelp32Snapshot” (ByVal lFlags As Long, ByVal lProcessID As Long) As Long

Private Declare Function ProcessFirst Lib “kernel32” Alias “Process32First” (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long

Private Declare Function Module32First Lib “kernel32” (ByVal hSnapshot As Long, lppe As MODULEENTRY32) As Long

Private Declare Function Module32Next Lib “kernel32” (ByVal hSnapshot As Long, lppe As MODULEENTRY32) As Long

Private Declare Function ProcessNext Lib “kernel32” Alias “Process32Next” (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long

Private Declare Function CloseHandle Lib “kernel32” (ByVal hObject As Long) As Long

Private Type PROCESSENTRY32

dwSize As Long

tUsage As Long

th32ProcessID As Long

th32DefaultHeapID As Long

th32ModuleID As Long

tThreads As Long

th32ParentProcessID As Long

pcPriClassBase As Long

dwFlags As Long

szExeFile As String * 260

End Type

Const TH32CS_SNAPPROCESS = &H2

Const TH32CS_SNAPmodule = &H8

Private Type MODULEENTRY32

dwSize As Long

th32ModuleID As Long

th32ProcessID As Long

GlbltUsage As Long

ProctUsage As Long

modBaseAddr As Byte

modBaseSize As Long

hModule As Long

szModule As String * 256

szExePath As String * 1024

End Type

Private Sub Command1_Click()

End

End Sub

Private Sub Timer1_Timer()

Dim ret As Long, lPid As Long

Dim isLive As Boolean

Dim Mode As MODULEENTRY32, Proc As PROCESSENTRY32

Dim hSnapshot As Long, hMSnapshot As Long

Dim sFilename As String

sFilename = App.Path + “\ss.exe” ‘另一个程序的路径

hSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0)

Proc.dwSize = Len(Proc)

Mode.dwSize = Len(Mode)

lPid = ProcessFirst(hSnapshot, Proc)

Do While lPid 0

hMSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPmodule, Proc.th32ProcessID)

Mode.szExePath = Space$(256)

ret = Module32First(hMSnapshot, Mode)

If ret > 0 Then

If InStr(1, Mode.szExePath, sFilename, vbTextCompare) > 0 Then ‘Mode.szExePath=程序路径

isLive = True ‘找到目标程序

CloseHandle hMSnapshot

Exit Do

End If

End If

CloseHandle hMSnapshot

lPid = ProcessNext(hSnapshot, Proc)

Loop

CloseHandle hSnapshot

If Not isLive Then

ShellExecute 0, “”, sFilename, “”, “”, 1 ‘如果目标程序不存在 则启动它

End If

End Sub

————————————————————————————————————————————————

2.名称为ss.exe

Option Explicit

Private Declare Function ShellExecute Lib “shell32.dll” Alias “ShellExecuteA” (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Declare Function CreateToolhelpSnapshot Lib “kernel32” Alias “CreateToolhelp32Snapshot” (ByVal lFlags As Long, ByVal lProcessID As Long) As Long

Private Declare Function ProcessFirst Lib “kernel32” Alias “Process32First” (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long

Private Declare Function Module32First Lib “kernel32” (ByVal hSnapshot As Long, lppe As MODULEENTRY32) As Long

Private Declare Function Module32Next Lib “kernel32” (ByVal hSnapshot As Long, lppe As MODULEENTRY32) As Long

Private Declare Function ProcessNext Lib “kernel32” Alias “Process32Next” (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long

Private Declare Function CloseHandle Lib “kernel32” (ByVal hObject As Long) As Long

Private Type PROCESSENTRY32

dwSize As Long

tUsage As Long

th32ProcessID As Long

th32DefaultHeapID As Long

th32ModuleID As Long

tThreads As Long

th32ParentProcessID As Long

pcPriClassBase As Long

dwFlags As Long

szExeFile As String * 260

End Type

Const TH32CS_SNAPPROCESS = &H2

Const TH32CS_SNAPmodule = &H8

Private Type MODULEENTRY32

dwSize As Long

th32ModuleID As Long

th32ProcessID As Long

GlbltUsage As Long

ProctUsage As Long

modBaseAddr As Byte

modBaseSize As Long

hModule As Long

szModule As String * 256

szExePath As String * 1024

End Type

Private Sub Command1_Click()

End

End Sub

Private Sub Timer1_Timer()

Dim ret As Long, lPid As Long

Dim isLive As Boolean

Dim Mode As MODULEENTRY32, Proc As PROCESSENTRY32

Dim hSnapshot As Long, hMSnapshot As Long

Dim sFilename As String

If Dir(App.Path + “\s”) “” Then Exit Sub ‘如果当前资料夹记忆体在s这个档案 则停止双程序保护

sFilename = App.Path + “\csrss.exe”

hSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0)

Proc.dwSize = Len(Proc)

Mode.dwSize = Len(Mode)

lPid = ProcessFirst(hSnapshot, Proc)

Do While lPid 0

hMSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPmodule, Proc.th32ProcessID)

Mode.szExePath = Space$(256)

ret = Module32First(hMSnapshot, Mode)

If ret > 0 Then

If InStr(1, Mode.szExePath, sFilename, vbTextCompare) > 0 Then

isLive = True

CloseHandle hMSnapshot

Exit Do

End If

End If

CloseHandle hMSnapshot

lPid = ProcessNext(hSnapshot, Proc)

Loop

CloseHandle hSnapshot

If Not isLive Then

ShellExecute 0, “”, sFilename, “”, “”, 1

End If

End Sub

linux将程式置顶的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux将程式置顶,如何在Linux系统中将程序置顶,Linux下怎么检视某个守护程序或者所有的守护程序?的信息别忘了在本站进行查找喔。


数据运维技术 » 如何在Linux系统中将程序置顶 (linux将程式置顶)